В GUI в ходе процесса создается текстовый файл, надо дождаться, когда этот файл запишется полностью, а потом запустить другой процесс, который этот файл использует:
process = new QProcess(this);
...
process->setStandardOutputFile(fileName);
process->start(program);
process->waitForFinished();
process2 = new QProcess(this);
...
process2->setStandardInputFile(fileName);
...
Если файл большой, то пока идет ожидание окончания процесса, всё пугающе виснет. В документации как раз сказано, что "Calling this function from the main (GUI) thread might cause your user interface to freeze". Если заменить
process->start(program);
process->waitForFinished();
на
process->execute(program);
, то процесс вобще не выполняется.
Есть какая-нибудь альтернатива для waitForFinished() в GUI?