Qt Tutorial Include Problem



  • Hallo ich mache gerade das nachfolgende Tutorial.
    http://qt-project.org/doc/qt-4.8/gettingstartedqt.html

    Beim 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.


Anmelden zum Antworten