I\'ve started a process using QProcess::start()
and I need to detach it afterwards. How can I do it? I haven\'t found relevant info in the Qt docs.
I\'m
If you take a look into the implementation of QProcess::~QProcess(), you will know how QProcess
terminates the process with its destruction. Also, note that QProcess::setProcessState() is protected, which means you could implement a QDetachableProcess
inherited from QProcess
with a method detach()
to call setProcessState(QProcess::NotRunning);
as a workaround.
For example:
class QDetachableProcess : public QProcess
{
public:
QDetachableProcess(QObject *parent = 0) : QProcess(parent){}
void detach()
{
this->waitForStarted();
setProcessState(QProcess::NotRunning);
}
};
Then you could do things like this:
QDetachableProcess process;
process.setEnvironment(QStringList() << "SOME_ENV=Value");
process.start();
process.detach();
You can't as of 5.1, see here. There's also a suggestion in the comments, not sure if useful for your case):
Workaround proposal: write a helper process that starts detached processes, and terminates itself when all setting up is completed.