0
怎麼可能先從QProcess中外部子進程在Qt應用程序,並與主要程序的執行下去,而無需等待子進程完成,但同時,他完成後從孩子進程中獲得回叫?QProcess中:啓動子進程,而無需等待完成它,但得到完成信號
第一種方案:
QProcess* child = new QProcess();
connect(child, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(isFinished(int, QProcess::ExitStatus)));
child->start("example.exe", QStringList() << path);
.
.
. further execution of main application
這裏的子進程啓動,主要應用的推移與執行, 但儘管信號/槽連接,沒有任何QT錯誤做, 總會有沒有回調時孩子完成了。
第二種情景:
QProcess* child = new QProcess();
connect(child, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(isFinished(int, QProcess::ExitStatus)));
child->start("example.exe", QStringList() << path);
child->waitForFinished();
.
.
. NO further execution of main application
這裏的子進程啓動,主要的應用程序去不與執行, 和信號完成的回調/段到來正確。 這兩個都不是我想要的。
任何想法?
很奇怪,第一種情形應該很好地工作。見演示\嵌入式\ fluidlauncher \ demoapplication.cpp和qt4.8目錄演示\ qtdemo \ menumanager.cpp,我沒有看到你的代碼和Qt樣品之間的差異。 – Bogdan
第一種方案適用於我們,並且是正確的實施。 –
在處理完成之前可能會刪除'this'對象? –