У меня был очень похожий случай, хотя я работал на Linux со встроенным QT 4.8. Не уверен, что это может вам помочь, но, поскольку я не могу поместить это в комментарий, я должен сделать отдельный ответ.
Вы устанавливаете родителя для своего QProcess? В моем случае я создал экземпляр QProcess следующим образом.
QProcess *p = new QProcess;
и я мог видеть в списке запущенных процессов, что каждый раз, когда я создавал новый экземпляр QProcess, я получал новый процесс, который не мог быть закрыт с помощью close(), terminate() или kill(). Когда я, наконец, переписал код вот так
QProcess *p = new QProcess(mainW); //mainW was my GUI class, which handled also the closing of the process
проблема решилась сама собой, мне даже не нужно было вызывать какую-либо функцию, чтобы закрыть процесс. В моем случае я был уверен, что процессы, которые я вызывал, завершались, так как почти все они были аудиофайлами, поэтому я мог слышать их завершение. Другие были процессами, которые моя программа ждала завершения, поэтому я снова был уверен, что они завершились, потому что моя программа не застряла в ожидании их,
Надеюсь, это может помочь, несмотря на другую ОС.
person
il_boga
schedule
06.10.2016
program.exe
и как вы обычно завершаете его, если запускаете его из командной строки? - person G.M.   schedule 30.09.2016