【发布时间】:2015-11-18 06:29:52
【问题描述】:
我本来打算用QProcess在我的电脑上执行一个程序(.exe),处理一个已经存在的文件,然后输出一个新文件继续下一步,整个过程大约需要3到5秒。
但是,虽然执行进程的进程屏幕确实显示并运行,并且我还编写了几行代码来检测进程是否已完成,然后执行下一步,但仍不能阻止项目执行无需等待即可执行以下步骤。
换句话说,我的项目将尝试打开一个不存在的文件,因为它在前面的代码中仍在处理中。
于是我写了一个简单的代码来测试:
QProcess *proc = new QProcess(this);
ui->textEdit->append(QString("%1").arg(proc->state()));
ui->textEdit->append(QString("%1").arg(proc->exitCode()));
ui->textEdit->append(QString("%1").arg(proc->waitForStarted()));
ui->textEdit->append(QString("%1").arg(proc->waitForFinished()));
proc->startDetached("cmd");
ui->textEdit->append(QString("%1").arg(proc->state()));
ui->textEdit->append(QString("%1").arg(proc->exitCode()));
ui->textEdit->append(QString("%1").arg(proc->waitForStarted()));
ui->textEdit->append(QString("%1").arg(proc->waitForFinished()));
结果全是“零”。
0
0
0
0
0
0
0
0
我对 QProcess 的 exitcode 函数有误解吗?
【问题讨论】: