Resumen de la teoría Qt Literacy-QProcess

Alfabetización Qt-Resumen de la teoría del proceso Q_proceso finaliza el proceso_blog de Sunstorm-blog CSDN

QProcess nos permite tratar procesos como dispositivos de E/S secuenciales. Debido a que QProcess hereda de la clase QIODevice, podemos leer y escribir en el proceso como si usáramos QTcpSocket para acceder a una conexión de red. Luego puede llamar a write() para escribir en la entrada estándar del proceso y a read(), readLine() y getChar() para leer la salida estándar. Debido a que hereda QIODevice, QProcess también se puede usar como fuente de entrada para QXmlReader o para generar datos que se cargarán usando QNetworkAccessManager.

Cuando el proceso externo sale, QProcess vuelve a entrar en el estado NotRunning (estado inicial) y emite la señal terminado ().
La señal de terminado () proporciona el código de salida y el estado de salida del proceso como parámetros. También puede llamar a exitCode () para obtener el código de salida del último proceso completado y llamar a exitStatus () para obtener su estado de salida.

Si ocurre un error en cualquier momento, QProcess emitirá la señal erroroccurs(). También puede llamar a error() para encontrar el tipo de error que ocurrió la última vez y llamar a state() para encontrar el estado del proceso actual.
——————————————
Declaración de derechos de autor: este artículo es un artículo original del blogger de CSDN "Solar Storm" y sigue el acuerdo de derechos de autor CC 4.0 BY-SA. Adjunte el enlace de la fuente original y esta copia. al reimprimir la declaración.
Enlace original: https://blog.csdn.net/qq_43680827/article/details/129440680

La señal finalizada y las señales comunes después de llamar al exe externo en QProcess_qprocess termina_blog-CSDN de Littlehero_121

1. Puede consultar el enlace correspondiente: https://doc.qt.io/Qt-5/qprocess.html#finished

2. Preste atención a las siguientes 4 señales cuando las use: use start (), de lo contrario habrá problemas con el inicio.

Preste atención a la diferencia entre start() y startDetached() aquí: https://blog.csdn.net/kucoffee12/article/details/75200101

Las siguientes 4 señales relacionadas con el inicio: (las siguientes son vinculaciones)

QProcess *proceso = nuevo QProcess;
    conectar(proceso, SEÑAL(readyReadStandardOutput()), esto, RANURA(redFromStdOut()));
    conectar(proceso, SEÑAL(readyReadStandardError()), esto, RANURA(redFromStdErr()));
    conectar (proceso, SEÑAL(error(QProcess::ProcessError)), this, SLOT(processError(QProcess::ProcessError)));
    connect(proceso, SEÑAL(terminado(int,QProcess::ExitStatus)), this, SLOT(processFinished (int,QProcess::ExitStatus)));
 
El programa finaliza de forma normal o anormal. La estructura es la siguiente:

 enum ExitStatus {         NormalExit,         CrashExit     }; void MainWindow::processFinished(int exitCode, QProcess::ExitStatus exitStatus) {     if(exitStatus == QProcess::NormalExit)     {         //El programa finaliza normalmente     }     else     {         //El programa finaliza de forma anormal     } } Después de ingresar el final normal, puede juzgar que el programa exe llamado se ha completado, de esta manera puede saber cuándo termina el programa de ejecución llamado;














 

Supongo que te gusta

Origin blog.csdn.net/thanklife/article/details/131030612
Recomendado
Clasificación