我正在编写一个QCoreApplication,它应该通过Qprocess创建一个外部进程。
我刚刚注意到,即使在事件处理程序执行之前调用waitForStarted()并且进程状态是Running,外部进程也不会启动,直到在QCoreApplication上调用exec()方法。
也就是说,是否可以将例程的执行推迟到事件处理启动(其中实例化QProcess),或者唯一可行的方法是创建一个一次性的QTimer?
发布于 2008-11-06 13:31:56
经过简短的研究后,它得到了处理调用线程的所有挂起事件的方法QCoreApplication::processEvents()。在以下代码中
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QProcess abc(....);
abc.start(...);
app.processEvents();
//////////////////////////////////////////////////////
// is the process really running ? //
//////////////////////////////////////////////////////
return app.exec();
}is-the-process-really-running部分需要这样的方法才能让它找到abc进程并运行。否则,在事件循环处理start事件时将启动abc。
https://stackoverflow.com/questions/268011
复制相似问题