Я планировал использовать QProcess для выполнения программы (.exe) на своем компьютере и обрабатывать файл, который уже существует, затем выводить новый файл и продолжать следующий шаг, весь процесс занимает от 3 до 5 секунд.QProcess возвращает код выхода еще не выходит?
Однако, несмотря на то, что экран процесса, который выполняет процесс, появляется и работает, и я также написал строки кода, чтобы определить, был ли процесс выполнен, затем выполните следующий шаг, но все же не можем остановить проект из делая следующие шаги без ожидания.
Другими словами, мой проект попытается открыть файл, который не существует, поскольку он все еще находится в процессе в предыдущем коде.
Так что я написал простой код для проверки:
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
я понял о функциях ExitCode QProcess в?
Ваш ответ дает мне подсказку, я нашел функцию под вызовом QProcess «выполнить», чего я хочу. Он заблокирует процесс до его завершения. – APU
Я понимаю, что start + waitForFinished будет делать то же самое, но я на самом деле не тестировал это. В любом случае, рад, что у вас есть что-то, что работает для ваших нужд. –