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();
}