Seite 1 von 2
2 Fragen (einmal QT Creator , einmal Visual Studio)
Verfasst: 10. November 2010 12:31
von pizza4ever
Guten Tag,
ich habe zwei Fragen... wohl relativ leicht
a.) Wenn ich im QT Creator arbeite, funktoneirt alles soweit ganz gut, außer dass er meine Breakpoins einfach ignoriert!? Woran liegt das? Er beachtet sie komplett nicht, obwol sie aktiviert sind (DEBUG Modus).
b.) Wohl eine sau einfache Frage: Wie fange ich im Visual Studio (2008) an? Ich habe die Arbeitsumgebung soweit aufgesetzt, im Designer kann ich dann auch mir ein para Buttons angelegt, die werden nach dem Kompilieren auch angezeigt, alles TOP, aber wenn ich nun eins meiner Signals mit Funktion belegen will, habe ich verscuht das aus dem QT Creator zu adaptieren indem ich in der headerdatei (heißt hier qt_testproject.h) einen
angelegt habe. Wenn ich nun allerdings in der qt_testproject.cpp versuche arauf zuzugreifen mit:
funktioniert es nicht - wieso?
DANKE[/code]
Verfasst: 10. November 2010 13:26
von Mani99
Event. hilft ein bisschen mehr source? Wo erstellst du die connection zwischen button und slot?
Verfasst: 10. November 2010 13:31
von pizza4ever
Moin.
Die Erstellung zwischen Button und Source erstelle ich im QT Designer unter Signale / Slots
Verfasst: 10. November 2010 13:38
von Mani99
Welche files werden unter visual studio noch erstellt?
Wo wird connect(sender, signal, ...) aufgerufen?
Wenn du etwas mehr source posten würdest, dann müsste man nicht raten!
Verfasst: 10. November 2010 13:54
von pizza4ever
Hab mal ne Übersicht aus VS rangehängt...
die .h Datei sieht so aus:
#ifndef QT_TESTPROJECT_H
#define QT_TESTPROJECT_H
#include <QtGui/QMainWindow>
#include "ui_qt_testproject.h"
class QT_Testproject : public QMainWindow
{
Q_OBJECT
public:
QT_Testproject(QWidget *parent = 0, Qt::WFlags flags = 0);
~QT_Testproject();
public slots:
void ButtonClicked();
private:
Ui::QT_TestprojectClass ui;
};
#endif // QT_TESTPROJECT_H
main.cpp
Code: Alles auswählen
#include "qt_testproject.h"
#include <QtGui/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QT_Testproject w;
w.show();
return a.exec();
}
qt_testproject.cpp
Code: Alles auswählen
#include "qt_testproject.h"
QT_Testproject::QT_Testproject(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
}
QT_Testproject::~QT_Testproject()
{
}
QT_Testproject::ButtonClicked()
{
}
Wo connect aufgerufen wird weiß ich nicht, hab mal im Creator geschaut und da nix ädaquates gefunden, leider...
Hab mich halt durch Tutorials gehangelt und nun mit VS angefangen, leider bisher wie gesagt erfolglos...
Danke, und falls noch was fehlt bitte Bescheid sagen...
Verfasst: 10. November 2010 14:05
von Mani99
Die folgende datei wäre noch interessant!
Re: 2 Fragen (einmal QT Creator , einmal Visual Studio)
Verfasst: 10. November 2010 14:10
von franzf
pizza4ever hat geschrieben:Wenn ich nun allerdings in der qt_testproject.cpp versuche arauf zuzugreifen mit:
funktioniert es nicht - wieso?
1) Das ist kein "Zugriff" sondern nur eine Methodendefinition
2) "funktioniert nicht" ist keine ausreichende Beschreibung/Meldung. Der Screenshot (mal wieder... argh) sagt jetzt, dass es ein Compiler-Error ist. Der kommt daher, dass FUnktionen immer einen Return-Typ angeben müssen - der fehlt bei deiner Definition, deshalb die Meldung mit §default-int" usw.
Verfasst: 10. November 2010 14:33
von pizza4ever
upsala... sorry stimmt, funktioniert jetzt, zumindestens startet das programm nun einwandfrei...
DANKE
Eine Frage habsch noch, dann wäre VS mit QT wohl perfekt für mich..
und zwar im creator bekomm ich immer vorschläge wenn ich anfange zu tippen z.B. ich gebe ein:
MainWindow::But und er schlägt mir als ergänzung: tonClicked (so dass es insgesamt ButtonClicked heißt, er schlägt mir halt sämtliche Möglichkeiten vor) vor, das ist wirklcih sehr sehr hilfreich... bei VS bisher noch nicht; weiß jemand ob / wo man das einrichten kann...
Nochmal danke für diesen Schusselfehler
edit: hab grad das hier gefunden:
http://blog.xeviox.com/wordpress/?p=155
werds später mal ausprobieren...
Verfasst: 11. November 2010 09:46
von pizza4ever
hmm hab doch nochmal ne frage
weil wenn ich nun - so wie ich es in einem QT Tutorial gelernt habe, ein Textlabel seten will mit
sagt mir der Compiler:
Fehler, weil links ne klasse ist..
Es funktioniert dann nur wenn ich schreibe:
ui.label->setText("Fehler");
Kann mir das jemand erklären? Für nen Anfänger alles zZ noch recht schwer ;-(
edit: Visual Studio 2008...
Verfasst: 11. November 2010 10:47
von franzf
Bitte tu dir und uns den Gefallen und lern erst C++. Qt verlangt ein gutes Verständnis mindestens der Grundlagen! Du scheinst den Unterschied zwischen Value- und Zeigertyp nicht zu kennen.
Verfasst: 11. November 2010 11:07
von pizza4ever
Naja, denn kenn ich schon...
Wieso ich aber im Creator über den Zeiger zugreife und in VS direkt, erklärt es nicht...
Wie gesagt, der obere Code läuft ja im Creator, nur nich im Visual Studio... DAFÜR hätte ich gerne ne erklärung, keine Codeerklärung
Man arbeitet sich halt ein und da ist man am Anfang halt öfters mal aufgeschmissen...
Verfasst: 11. November 2010 11:22
von franzf
pizza4ever hat geschrieben:Wie gesagt, der obere Code läuft ja im Creator, nur nich im Visual Studio... DAFÜR hätte ich gerne ne erklärung, keine Codeerklärung
Dann schau bitte nach, wenn der VS2008 ein (halbwegs...) standardkonformer C++-Compiler ist, wird der bei gleichem Code ein (aus Fehlersicht) gleiches Ergebnis liefern. Qt muss sich als C++-Framework an die Regeln halten, die der C++-Standard stellt.
Darum: Schau dir den Code nochmal genau an, ich bin mir sicher du hast im Code einen Unterschied betreffend Deklaration deines ui-Members.
Verfasst: 11. November 2010 22:34
von pizza4ever
Naja, ich hab mich in beiden Malen durch die Projekt Erstellen Assistente geklickt und dann drauf losgeklimert...
Hattest aber recht, der QT Creator Assistent definiert es als Zeiger
und VS Assistent als
private:
Ui::TestProject_QTClass ui;
Allerdings Crasht der Code sobald ich versuche im VS es als Zeiger zu definieren... Bin wie gesagt noch komplett Fresch in QT da stellen sich halt 100 ANfängerfragen...
Verfasst: 12. November 2010 08:01
von franzf
pizza4ever hat geschrieben:Allerdings Crasht der Code sobald ich versuche im VS es als Zeiger zu definieren...
Wieder der Hinweis auf C++: Zeiger müssen auf etwas zeigen, in deinem Falle musst du deinen Member dynamisch mit new initialisieren, sonst gibts nen SegFault (der Codekann nicht crashen, das Programm stürzt ab und zwar mit einer bestimmten Meldung, die du bitte in Zukunft mitpostest, danke

).
Verfasst: 12. November 2010 14:47
von pizza4ever
Es gab nen Speicherfehler, daher hatte ich ihn nicht gepostet...
Whatever.. Ich arbeite mich grad mal durchs QT4.6 Buch von Galileo Computing durch weil ich wohl mit Trial and Error grad net weiterkomme;)