library creator c++ qt external

c++ - library qt creator



Qt Ejecutar programa externo (3)

Quiero iniciar un programa externo de mi QT-Programm. La única solución de trabajo fue:

system("start explorer.exe");

Pero solo funciona para Windows e inicia una línea de comando por un momento.

Lo siguiente que intenté fue:

QProcess process; QString file = QDir::homepath + "file.exe"; process.start(file); //process.execute(file); //i tried as well

Pero nada pasó. ¿Algunas ideas?


QDir :: homePath no termina con el separador. Vía válida a su exe

QString file = QDir::homePath + QDir::separator + "file.exe";


Si desea que su programa espere mientras se está ejecutando el proceso, puede usar

QProcess::execute(file);

en lugar de

QProcess process; process.start(file);


Si su objeto de process 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 QProcess en el destructor de QProcess , cuando el método finalice.

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

En su lugar, debe asignar el objeto QProcess en el montón de esa manera:

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