2010-11-13 4 views
7

J'écris un simple programme OpenGL avec Qt Creator qui crée essentiellement un QGLWidget, le montre et exécute la boucle de l'application. Dans Qt Creator, nous avons un onglet appelé Application Output, mais tout ce que je vois là est "Démarrage de xxx.exe. xxx.exe s'est terminé avec le code 0 ". Aucune sortie de std::cout ou de std::cerr. Maintenant, je sais que je pourrais démarrer mon application à partir de cmd.exe (oui, j'utilise Windows, j'adore ça: P) et voir la sortie là-bas mais j'aimerais pouvoir voir la sortie directement depuis l'IDE. Est-ce possible? MerciPuis-je voir la sortie du programme dans Qt-Creator?

Répondre

8

Généralement, le volet de sortie d'application fonctionne correctement. Etes-vous sûr que vous verriez la sortie de cmd.exe (avez-vous déjà essayé?)? Il est généralement désactivé pour les applications d'interface utilisateur afin d'éviter l'apparition de fenêtres de console. Essayez CONFIG += console. Vérifiez également si vous voyez messages qDebug() dans la sortie d'application .

+0

Dans Linux, j'ai l'expérience que toute la sortie de la console est affichée, dans Windows seulement qDebug apparaîtra constamment dans la fenêtre. – rubenvb

+0

Si votre programme imprime beaucoup de sortie dans qtcreator, il sera suspendu pendant de longues périodes après avoir tué ou quitté la cible du débogueur. Certains algorithmes asiniens dans l'interface utilisateur de qtcreator provoquent une augmentation exponentielle du temps d'exécution en fonction du nombre de lignes de sortie. Cela a été comme ça pendant des années. – doug65536

+0

Ne le crois pas? Essayez 'int main() {while (1) std :: cout <<" Test "<< std :: endl; } ', laissez-le fonctionner pendant quelques minutes et essayez d'entrer ou de tuer le programme. YMMV. – doug65536

3

Vous pouvez également vérifier le paramètre "Exécuter dans la console" dans les options Projet-> Exécuter. Cela ouvrira une nouvelle fenêtre de console et affichera toute la sortie de la console (si CONFIG += console est bien sûr utilisé).

5

simplement #include <QDebug> puis utiliser qDebug au lieu de cout comme

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

aussi cela fonctionne

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

ajouter CONFIG += console dans le fichier .pro ne fonctionne pas pour moi. Je me demande pourquoi?

Je viens de découvrir que je dois ajouter "endl;" pour Cout travailler comme

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

certainement la bonne réponse! – DH1TW

0

Essayez: Outils -> Options Sous l'onglet "Général" de "Environnement" modifier l'entrée borne de:

x-terminal-emulator -e 

à

xterm -e 
Questions connexes