Qt Tutorial Include Problem
-
Hallo ich mache gerade das nachfolgende Tutorial.
http://qt-project.org/doc/qt-4.8/gettingstartedqt.htmlBeim ersten Beispiel hat alles gut funktioniert. Beim zweiten Beispiel kriege lauter Fehlermeldungen die anscheinend vom Include kommen.
1>------ Erstellen gestartet: Projekt: QT Tut, Konfiguration: Release Win32 ------ 1>Kompilieren... 1>main.cpp 1>.\main.cpp(5) : error C2079: 'app' verwendet undefiniertes class 'QApplication' 1>.\main.cpp(5) : error C2078: Zu viele Initialisierungen 1>.\main.cpp(5) : error C2440: 'Initialisierung': 'char **' kann nicht in 'int' konvertiert werden 1> Es gibt keinen Kontext, in dem diese Konvertierung möglich ist 1>.\main.cpp(7) : error C2065: 'QTextEdit': nichtdeklarierter Bezeichner 1>.\main.cpp(7) : error C2065: 'textEdit': nichtdeklarierter Bezeichner 1>.\main.cpp(7) : error C2061: Syntaxfehler: Bezeichner 'QTextEdit' 1>.\main.cpp(8) : error C2065: 'QPushButton': nichtdeklarierter Bezeichner 1>.\main.cpp(8) : error C2065: 'quitButton': nichtdeklarierter Bezeichner 1>.\main.cpp(8) : error C2061: Syntaxfehler: Bezeichner 'QPushButton' 1>.\main.cpp(10) : error C2065: 'quitButton': nichtdeklarierter Bezeichner 1>.\main.cpp(12) : error C2065: 'QVBoxLayout': nichtdeklarierter Bezeichner 1>.\main.cpp(12) : error C2065: 'layout': nichtdeklarierter Bezeichner 1>.\main.cpp(12) : error C2061: Syntaxfehler: Bezeichner 'QVBoxLayout' 1>.\main.cpp(13) : error C2065: 'layout': nichtdeklarierter Bezeichner 1>.\main.cpp(13) : error C2227: Links von "->addWidget" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden. 1> Typ ist ''unknown-type'' 1>.\main.cpp(13) : error C2065: 'textEdit': nichtdeklarierter Bezeichner 1>.\main.cpp(14) : error C2065: 'layout': nichtdeklarierter Bezeichner 1>.\main.cpp(14) : error C2227: Links von "->addWidget" muss sich ein Zeiger auf Klassen-/Struktur-/Union-/generischen Typ befinden. 1> Typ ist ''unknown-type'' 1>.\main.cpp(14) : error C2065: 'quitButton': nichtdeklarierter Bezeichner 1>.\main.cpp(16) : error C2079: 'window' verwendet undefiniertes class 'QWidget' 1>.\main.cpp(17) : error C2228: Links von ".setLayout" muss sich eine Klasse/Struktur/Union befinden. 1> Typ ist 'int' 1>.\main.cpp(17) : error C2065: 'layout': nichtdeklarierter Bezeichner 1>.\main.cpp(19) : error C2228: Links von ".show" muss sich eine Klasse/Struktur/Union befinden. 1> Typ ist 'int' 1>.\main.cpp(21) : error C2228: Links von ".exec" muss sich eine Klasse/Struktur/Union befinden. 1> Typ ist 'int'
Was ist an dem Include falsch bzw. was habe ich falsch gemacht?
Wenn Includes fehlen könnt ihr mir dann auch erklären wieso?Danke Gruß
-
Welchem Include ***********************? Kannst du nicht einfach gleich dazuschreiben, was du machst?
Aber da der Fehler undefined class QApplication ist, ist doch eigentlich relativ logisch, dass dir noch der QApplication include fehlt, also
#include <QtGui/QApplication>
-
Danke für die Antwort!
Leider funktioniert das nicht:
1>.\main.cpp(2) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "QtGui/QApplication": No such file or directory
Naja und eig. ist der Fehler mir nicht ersichtlich, ich habe das Tutorial befolgt und die Includes stimmen einfach nicht:
1 #include <QtGui> 2 3 int main(int argv, char **args) 4 { 5 QApplication app(argv, args); 6 7 QTextEdit *textEdit = new QTextEdit; 8 QPushButton *quitButton = new QPushButton("&Quit"); 9 10 QObject::connect(quitButton, SIGNAL(clicked()), qApp, SLOT(quit())); 11 12 QVBoxLayout *layout = new QVBoxLayout; 13 layout->addWidget(textEdit); 14 layout->addWidget(quitButton); 15 16 QWidget window; 17 window.setLayout(layout); 18 19 window.show(); 20 21 return app.exec(); 22 }
Mir ist einfach nicht klar wie es sein kann das wenn ich ein offizieles Tut. befolge es einfach nicht funktioniert
Danke Gruß
-
Füge mal noch
#include <QApplication>
hinzu (so wie es auch im ersten Beispiel verwendet wird).
Wenn du dann bzgl. QApplication keinen Fehler mehr erhältst, dann stimmt irgendetwas mit <QtGui> nicht.
Hast du lokal eine Datei gleichen Namens? Oder ist diese Datei im QT-Verzeichnis kaputt?
Beim Visual Studio gibt es auch eine Compiler-Einstellung (unter "Präprozessor"), welche die Namen und Pfade aller Includes ausgibt - evtl. hilft das weiter.
-
Danke für die Antwort, habe:
#include <QtWidgets>
eingefügt jetzt funktionierts. Mhm hat whr. was mit der Version zutun.
Gruß
-
Krabak schrieb:
Danke für die Antwort, habe:
#include <QtWidgets>
Das hört sich nach Qt 5 an. Ich kenne den Include zumindest nicht. Das kann dann auch gut das Problem sein, du hast Qt 5 und versuchst ein Qt 4 Beispiel 1:1 umzusetzen.