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);