如果您查看实现QProcess::~QProcess(),您将知道如何QProcess通过销毁终止该过程.另外,请注意QProcess::setProcessState()受保护,这意味着您可以使用方法实现QDetachableProcess继承自作为变通QProcess方法detach()调用setProcessState(QProcess::NotRunning);的方法.
例如:
class QDetachableProcess : public QProcess
{
public:
QDetachableProcess(QObject *parent = 0) : QProcess(parent){}
void detach()
{
this->waitForStarted();
setProcessState(QProcess::NotRunning);
}
};
Run Code Online (Sandbox Code Playgroud)
然后你可以做这样的事情:
QDetachableProcess process;
process.setEnvironment(QStringList() << "SOME_ENV=Value");
process.start();
process.detach();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3026 次 |
| 最近记录: |