2010-11-13 6 views
7

Ich schreibe ein einfaches OpenGL-Programm mit Qt Creator, die im Grunde ein QGLWidget erstellt, es zeigt und die Anwendungsschleife ausführt. Normalerweise mag ich das Debuggen mehr mit Diagnosemeldungen, die durch Präprozessorsymbole mit einem aktuellen Debugger und Uhren usw. ein- und ausgeschaltet werden. In Qt Creator haben wir eine Registerkarte namens Application Output, aber alles, was ich dort sehe, ist "Starten xxx.exe. xxx.exe mit Code 0 beendet ". Keine Ausgabe von std::cout oder std::cerr. Jetzt weiß ich, dass ich meine Anwendung von cmd.exe starten konnte (ja, ich benutze Windows, liebe es: P) und sehe die Ausgabe dort, aber ich wünschte, ich könnte die Ausgabe direkt von der IDE sehen. Ist das möglich? DankeKann ich die Programmausgabe in Qt-Creator sehen?

Antwort

8

Normalerweise funktioniert die Anwendung Ausgabe Fenster einwandfrei. Sind Sie sicher, dass Sie die Ausgabe von cmd.exe (haben Sie tatsächlich versucht?) Sehen? In der Regel ist es für UI-Anwendungen deaktiviert, um zu verhindern, dass Konsolenfenster geöffnet werden. Versuchen Sie CONFIG += console. Überprüfen Sie auch, ob Sie qDebug() Nachrichten im Application Output sehen.

+0

Extras> Optionen Unter der Registerkarte "Allgemein" der "Umwelt" das Terminal Eintrag ändern In Linux habe ich die Erfahrung, dass alle Konsolenausgaben angezeigt werden, in Windows wird nur qDebug konsistent im Fenster angezeigt. – rubenvb

+0

Wenn Ihr Programm viele Ausgaben in qtcreator druckt, bleibt es nach dem Beenden oder Beenden des Debuggerziels lange Zeit hängen. Einige asinine Algorithmen in der Benutzerschnittstelle von qtcreator verursachen eine exponentielle Laufzeitverlängerung basierend auf der Anzahl von Zeilen der Ausgabe. So war es schon seit Jahren. – doug65536

+0

Glaub es nicht? Probieren Sie Folgendes aus: int main() {while (1) std :: cout << "Test" << std :: endl; } ', lassen Sie das für ein paar Minuten laufen, und versuchen Sie, in das Programm einzubrechen oder es zu beenden. YMMV. – doug65536

3

Alternativ können Sie die Einstellung "in Konsole ausführen" in den Projekt-> Ausführungsoptionen überprüfen. Dies öffnet ein neues Konsolenfenster und zeigt dort alle Konsolenausgaben an (wenn natürlich CONFIG += console verwendet wird).

5

einfach #include <QDebug> und dann qDebug anstelle von cout wie

qDebug() << "you just clicked ok"; 

auch diese

#include <QTextStream> 
QTextStream out(stdout); 
out << "\nHello World!\n"; 

Zugabe CONFIG += console in der .pro-Datei nicht funktioniert für mich nicht funktioniert. Ich wundere mich warum?

Ich entdeckte gerade, dass ich "endl;" für cout wie zu arbeiten

cout << "print this" << endl; 
+0

definitiv die richtige Antwort! – DH1TW

0

Versuchen: -:

x-terminal-emulator -e 

zu

xterm -e 
Verwandte Themen