【发布时间】:2021-06-28 13:20:05
【问题描述】:
QProcess* p = new QProcess;
p->setProgram("ping");
p->setArguments(QStringList()<<"127.0.0.1");
connect(p, QOverload<int, QProcess::ExitStatus>::of(&QProcess::finished),
[=](int exitCode, QProcess::ExitStatus exitStatus){
qDebug()<<"finished";
});
connect(p, &QProcess::stateChanged,
[=](QProcess::ProcessState state){
qDebug()<<"stateChanged"<<state;
});
qDebug()<<p->startDetached();
qDebug()<<"startDetached";
作为上面的演示,我希望在 ping 完成后输出finished。
但它没有,甚至stateChanged 也没有发出。
(顺便说一句,我想我有计划 B 使用 qtconcurrent 来实现)
【问题讨论】: