que pensé que iba a conseguir la salida de un QProcess usando el siguiente código:¿Cómo obtener STDOUT de un QProcess?
// Start the process
process.start(tr("php-cgi www/test.php"),QIODevice::ReadWrite);
// Wait for it to start
if(!process.waitForStarted())
return 0;
// Continue reading the data until EOF reached
QByteArray data;
while(process.waitForReadyRead())
data.append(process.readAll());
// Output the data
qDebug(data.data());
qDebug("Done!");
Lo que estoy esperando es ver la salida del programa impreso a la consola de depuración, pero todo lo que veo es:
¡Hecho!
Sé que:
- El programa se inicia bien, porque el mensaje al final se imprime.
- El programa hace imprimir salida porque ejecutar exactamente el mismo comando en el terminal produce una larga cadena de texto como se esperaba.
¿Qué estoy haciendo mal aquí?
No tiene sentido adjuntar ejecutable con traducción de idioma macro tr(). También dudo que poner el ejecutable y el parámetro como primer argumento funcione. Mejor: process.start ("php-cgi", QStringList() << "www/test.php", QIODevice :: ReadWrite); –
Si no desea bloquear su aplicación mientras se ejecuta QProcess, mire la respuesta a esta pregunta: http://stackoverflow.com/questions/10098980/real-time-display-of-qprocess-output-in-a -textbrowser – parsley72
Eche un vistazo a la respuesta aceptada a esta pregunta similar: http://stackoverflow.com/questions/2148185/run-linux-command-line-commands-from-qt4/2148360#2148360 – Fred