Kon*_*nov 4 c++ qt qprocess qtcore
最简单的代码:
void test
{
QProcess p;
p.start("sleep 10");
p.waitForBytesWritten();
p.waitForFinished(1);
}
Run Code Online (Sandbox Code Playgroud)
当然,该过程无法在函数结束之前完成,因此它会显示一条警告消息:
QProcess: Destroyed while process ("sleep") is still running.
Run Code Online (Sandbox Code Playgroud)
我希望这条消息不被显示 - 我应该在结束函数之前自己销毁这个过程,但我找不到如何正确地做到这一点:p.~QProcess(),p.terminate(),p.kill( )无法帮助我.
注意:我不想等待进程执行,只是在运行时自己杀死它.
您可以根据需要明确终止或终止该过程.但是,这本身并不足够,因为您实际上需要等待进程终止."kill"意味着它会将Unix上的SIGKILL信号发送给进程,并且还需要一些时间来实际完成.
因此,你会写这样的东西:
#include <QProcess>
int main()
{
QProcess p;
p.start("sleep 10");
p.waitForBytesWritten();
if (!p.waitForFinished(1)) {
p.kill();
p.waitForFinished(1);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5123 次 |
| 最近记录: |