[英]QProcess doesn't emit finish signal
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
后輸出finished
。 但它沒有,甚至stateChanged
也沒有發出。
(順便說一句,我想我有計划 B 通過使用 qtconcurrent 來實現這一點)
https://doc.qt.io/qt-5/qprocess.html
QString hostName = "127.0.0.1";
proc = new QProcess();
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;
});
proc->start("ping", QStringList() << QString(hostName));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.