qt4 signals & slots



  • Ich habe jetzt so gemacht, ich bekomme folgene Fehler:

    #include <QObject>
    

    QObject: No such file or directory

    Ich bin jetzt etwas ratlos 😕



  • Aber du verwendest schon qmake? Und dein QTDIR ist korrekt gesetzt? Verwendest du den QT Creator?



  • Nein ihc nutze Codeblocks. Ich habe gerade versucht, die DAtei mit qmake zu erstellen gings aber irgendwie nicht



  • edguy schrieb:

    Ich habe gerade versucht, die DAtei mit qmake zu erstellen gings aber irgendwie nicht

    Höh?!? QObject mit qmake erstellen oder was?
    Richte erstmal deine Umgebung korrekt ein, damit du mit Qt arbeiten kannst. Dazu gehören halt auch die entsprechenden Include-directories!

    Btw.
    http://code.google.com/p/qtworkbench/
    Ist ein Plugin für codeblocks, mit dem du auch qt-Projekte in CodeBlocks bearbeiten kannst.



  • Höh?!? QObject mit qmake erstellen oder was?
    Richte erstmal deine Umgebung korrekt ein, damit du mit Qt arbeiten kannst. Dazu gehören halt auch die entsprechenden Include-directories!

    Nein ich habe es mit der qt Command Prommpt versucht, hat aber nicht geklappt.



  • es kann vorkommen, dass du das Modul mit angeben musst, damit die Klasse gefunden wird.

    Probier mal, ob #include <QtCore/QObject> funktioniert



  • zwutz schrieb:

    Probier mal, ob #include <QtCore/QObject> funktioniert

    Das liegt dann daran, dass QtCore nicht mit in den includes-path aufgenommen wurde. Und darauf verlassen sich einige Programme. Auch wenn das vorerst eine Lösung ist, würde ich schauen, QtCore/QtGui/... mit in den includes-path zu bekommen. qmake sollte (TM) das aber automatisch machen.



  • mhhh ich weiß langsam nciht mehr was ich machen soll.
    Mit der Command Prompt komme ich nur bis make. Ich kann qmake -project schreiben und ist alles gut, wenn ich make ingebe. Kommt diesen Fehler Der Befehl "mingw32-make" ist entweder falsch geschrieben oder konnte nicht gefunden werden. Hat jemand eine Ahnung was ich falsch mache???



  • Nach einem "qmake -project" rufst du aber schon noch ein "qmake <insert_my_projectfile_name>.pro" auf? Denn erst das erstellt das Makefile.
    Mit welchem Compiler soll denn dein Qt-Projekt kompiliert werden? Evtl. vergessen (wie es eigentlich in der Qt-Doku steht...) ein korrektes QMAKESPEC zu setzen?



  • Es klapp immer noch nicht.Ich habe eben qmake projektname.pro eingeben dannn make und kommt immer noch den gleichen Fehler

    Ich möchte mit Codeblocks compilieren.

    Nach der Command Prompt sollte mein path richtig sein.
    -- qtdir set to C:\Qt\4.6.2
    -- PATH C:\Programm\CodeBlocks\MinGW\bin\bin to PATH
    -- Adding C:\WINDOWS\System32 to PATH
    -- QMAKESPEC set to win32-g++

    Ich denke das ist alles so richtig oder???



  • sieh mal nach, wie deine make.exe heißt. Evtl heißt die wirklich nur make.exe, qt erwartet aber minw32-make.exe.
    In dem Fall einfach kopieren oder umbenennen



  • so ich hoffe das ist das letzte mal, dass ich euch hier nerve. Ich habe qtcreator installiert. Ich habe kompiliert und ich bekomme 2 WArnungen und einen Fehler.

    myclass.cpp:5: undefined reference to vtable for MyClass' myclass.cpp:5: undefined reference tovtable for MyClass'

    collect2: ld returned 1 exit status
    Was ist bei mir falsch???



  • Q_OBJECT in Klassendefinition vergessen? Header steht im .pro unter "HEADERS"?



  • If you get linkage errors in the final building phase of your program, saying that YourClass::className() is undefined or that YourClass lacks a vtable, something has been done wrong. Most often, you have forgotten to compile or #include the moc-generated C++ code, or (in the former case) include that object file in the link command. If you use qmake , try rerunning it to update your makefile. This should do the trick.

    in 99% der Fälle reicht es, qmake neu auszuführen



  • in 99% der Fälle reicht es, qmake neu auszuführen

    ja du hattest recht!

    oh man war das kompliziert, ich habe mir das Leben echt schwer gemacht, hätte ich von Anfang an mit qtcreator gearbeitet.

    Vielen vielen Dank für eure Hilfe


Anmelden zum Antworten