QProcess and shell : Destroyed while process is still running

前端 未结 2 928
忘掉有多难
忘掉有多难 2020-12-19 10:31

I want to launch a shell script with Qt.

QProcess process;
process.start(commandLine, QStringList() << confFile);
process.waitForFinished();

if(proces         


        
相关标签:
2条回答
  • 2020-12-19 10:45

    process.waitForFinished(); is hitting the default 30 seconds timeout. Use process.waitForFinished(-1); instead. This will make sure you wait for however long it takes for the process to finish, without any timeout.

    0 讨论(0)
  • 2020-12-19 11:00

    Note you create QProcess into the local scope. This means that the object will be deleted when you exit the scope. In the destructor QProcess process terminates. The message "Destroyed" while "the process is still running" when the process terminates in the destructor.

    For solving this problem, you should call QProcess destructor when process is already terminated.

    If will be QProcess::waitForFinished(-1) into your example, it will occur, but this will block you application.

    0 讨论(0)
提交回复
热议问题