Из документации , QProcess::execute
...
Запускает программу программы с аргументами аргументов в новом процессе, ожидает его завершения и затем возвращаеткод выхода процесса.Любые данные, которые новый процесс записывает в консоль, перенаправляются в вызывающий процесс
Таким образом, вы никогда не увидите экземпляр QProcess
в открытом состоянии - он фактически закрывается к моменту возврата вызова.
Вместо этого вы, вероятно, захотите использовать QProcess::start
...
_process.start(program, args);
, который будет выполнять указанный процесс как дочерний элемент вызывающей стороны и делать его вывод доступнымчерез различные каналы чтения.
Кроме того, обратите внимание, что, хотя QProcess::waitForFinished
представляется полезной процедурой, обычно лучше подключаться к различным сигналам и реагировать соответствующим образом - будь то обработкаошибки или чтение из stdout / stderr и т. д.