Wie rufe ich ein QT Programm in der Konsole auf?
-
Hallo Community!
Ich versuche mich gerade an einer Klausuraufgabe (Aufgabe6.cpp) und würde mir die Ausgabe des folgenden Programms gerne ansehen.
Wisst Ihr was ich in der Konsole eingeben muss?
Ich habe es gerade mit moc Aufgabe6.cpp -oa6.moc probiert...da kam folgender Fehler
"No relevant classes found. No output generated."#include<QApplication> #include<QHBoxLayout> #include<QLabel> #include<QPushButton> #include<QString> class MyWidget: public QWidget{ private: QPushButton* button; QLabel* label; public: MyWidget(QString s1, QString s2){ button=new QPushButton(s1); label=new QLabel(s2); QHBoxLayout *layout=new QHBoxLayout; layout->addWidget(button); layout->addWidget(label); this->setLayout(layout); } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); MyWidget *window=new MyWidget("OOP","Klausur"); window->setWindowTitle("Qt Programm"); window->show(); return app.exec(); }
Lg Caro
-
Weisst du denn, was der moc macht? Was ist mit dem Makro Q_OBJECT?
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum Andere GUIs - Qt, GTK+, wxWidgets verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Das stand SO in der Aufgabe?!?
Da fehlt was ganz entscheidendes, nämlich das Q_OBJECT-Macro! Ohne dem geht nix, deshalb auch die Meldung von moc (No relevant classes found).Ansonsten würde dir raten (falls du vor hast noch mehr mit Qt zu machen) die Docs zu durch wühlen und die mitgelieferten Examples durchzugehen. Außerdem kann man kein Qt (C++) Programm "in der Konsole aufrufen". Das gehört kompiliert wie jedes andere anständige C++-Programm.
-
Das ist doch ein Präprozessor...dachte der macht das Programm dann z.b für den g++ Compiler übersetzbar.
-
Das ist eine Klausuraufgabe und ich sollte eigentlich auf einen Blick sehen wie die Ausgabe aussieht...das kann ich aber noch nicht und dachte mir das ich das mal abtippe und übersetzen lass...
-
Wenn du in deinem Kurs noch kein GUI bzw. Qt gehabt hast, solltest du die Aufgabe ignorieren.
Schau dir mal die Doku an (Assistant bzw. Online), was die verwendeten Klassen machen, dann kannst du dir auch vorstellen was das Programm macht - wenn du das wissen willst.
-
g++ main.cpp -I/usr/include/QtCore/ -I/usr/include/QtGui/ -lQtGui
Damit habe ich es uebersetzt bekommen. Einfach mit ./a.out starten. (Auf Linux)
PS: Meine Frage nach dem moc ziehlte darauf ab, dass du kein moc brauchst. Es ist weder das Q_OBJECT-Makro enthalten noch irgendwelche signal/slot/conntect zu finden.
-
Vielen Dank , das hat auch bei mir geklappt!!!!
-
Eine Unterfrage ist dann da noch:
"Wird Button gedrueckt (Signal pressed()), so soll der Text in label verschwinden (Slot clear()). Geben Sie die Anweisung an , die dafuer noetig ist."
Kann mir nochmal wer einen Tipp geben?
-
-
Dass du keine Ahnung hast, was dein 5(!)-zeiliges Programm da oben macht, deutet darauf hin, dass du dich ein wenig mit QT oder (falls nötig) mit C++ beschäftigen solltest, bevor du dich an solche Aufgaben setzt.
Der Befehl nach dem du fragst, ist eigentlich sehr einfach und vor allem äußerst fundamental für QT. Wenn du gar keine Ahnung hast, was du tun sollst, dann wäre es kontraproduktiv, dir hier die Lösung zu verraten. Schau in der QT-Hilfe nach Signalen oder dem connect()-Befehl, da siehst du Beispiele.