2010-11-13 69 views
7

Estoy escribiendo un programa OpenGL simple con Qt Creator que básicamente crea un QGLWidget, lo muestra y ejecuta el ciclo de la aplicación. Normalmente me gusta depurar más con mensajes de diagnóstico activados y desactivados por símbolos de preprocesador que usan un depurador y relojes reales, etc. En Qt Creator tenemos una pestaña llamada , Salida de aplicación, pero todo lo que veo es "Iniciando xxx.exe. xxx.exe salió con el código 0 ". Sin salida de std::cout o std::cerr. Ahora sé que podría iniciar mi aplicación desde cmd.exe (sí, estoy usando Windows, me encanta: P) y ver el resultado allí, pero me gustaría poder ver el resultado directamente desde el IDE. ¿Es eso posible? Gracias¿Puedo ver la salida del programa en Qt-Creator?

Respuesta

8

Normalmente el Aplicación Salida funciona bien. ¿Está seguro de que verá la salida de cmd.exe (¿realmente lo ha intentado?)? Por lo general, está desactivado para aplicaciones de interfaz de usuario para evitar que las ventanas de la consola aparezcan. Pruebe CONFIG += console. También compruebe si ve qDebug() mensajes en la Aplicación Salida.

+0

en Linux tengo la experiencia de que se muestra toda la salida de la consola, en Windows solo qDebug se mostrará constantemente en la ventana. – rubenvb

+0

Si su programa imprime una gran cantidad de salida en qtcreator, se bloqueará durante largos períodos de tiempo después de matar o salir del objetivo del depurador. Algunos algoritmos asines en la interfaz de usuario de qtcreator provocan un aumento exponencial del tiempo de ejecución en función del número de líneas de salida. Ha sido así durante años. – doug65536

+0

¿No lo crees? Pruebe 'int main() {while (1) std :: cout <<" Test "<< std :: endl; } ', deja que se ejecute durante unos minutos, y trata de romper o matar el programa. YMMV. – doug65536

3

Como alternativa, puede verificar la configuración de "ejecutar en la consola" en Proyecto-> Opciones de ejecución. Esto abrirá una nueva ventana de consola y mostrará todos los resultados de la consola (si se usa CONFIG += console por supuesto).

5

simplemente #include <QDebug> y luego utilice qDebug en lugar de cout como

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

también funciona esto

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

añadiendo CONFIG += console en el archivo .pro no funcionó para mí. ¿Me pregunto porque?

Acabo de descubrir que tengo que agregar "endl;" para cout para trabajar como

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

definitivamente la respuesta correcta! – DH1TW

0

Probar: Herramientas -> Opciones En la pestaña "General" del "medio ambiente" cambiar la entrada del terminal de:

x-terminal-emulator -e 

a

xterm -e 
Cuestiones relacionadas