我有一个插槽,称为传递 QProcess 中使用的一些参数。我使用其中一些参数执行一个外部程序。问题是我想为这些进程设置一个队列,等到前一个进程完成后再启动下一个进程。
你认为最好/最简单的方法是什么?
这是我的方法/插槽:
void FirstCase::CallApp(QString text, QString pathAndFileName)
{
QString command = QString("App1.exe %1 -Z %2").arg(pathAndFileName).arg(message);
QProcess* process = new QProcess(this);
process->start(command);
}
编辑这里的解决方案,如果你需要它:
按照 QStringList 的想法,我的 CallApp 方法只是将命令添加到 QStringList 中,例如:
list << command;
然后调用 Execute();
void FirstCase::Execute()
{
if(!list_.isEmpty()&&!executing_)
{
QProcess* p = new QProcess(this);
QString c = list_.takeFirst();
p->start(c);
executing_=TRUE;
connect(p, SIGNAL(finished(int)),this,SLOT(ExecFinished()));
}
}
void FirstCase::ExecFinished()
{
executing__=FALSE;
Execute();
}