Saltar al contenido

Qt Ejecutar programa externo

Solución:

Si tu process El objeto es una variable en la pila (por ejemplo, en un método), el código no funcionaría como se esperaba porque el proceso que ya ha iniciado se eliminará en el destructor de QProcess, cuando finaliza el método.

void MyClass::myMethod()
{
    QProcess process;
    QString file = QDir::homepath + "file.exe";
    process.start(file);
}

En su lugar, debería asignar el QProcess objeto en el montón así:

QProcess *process = new QProcess(this);
QString file = QDir::homepath + "/file.exe";
process->start(file);

Si desea que su programa espere mientras se ejecuta el proceso, puede usar

QProcess::execute(file);

en lugar de

QProcess process;
process.start(file);

QDir :: homePath no termina con separador. Ruta válida a su exe

QString file = QDir::homePath + QDir::separator + "file.exe";
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *