Как это можно объяснить? Помогите понять логику работы QProcess.
QProcess::execute запускает внешний процесс и дожидается завершения его работы. Некоторые программы при старте форкаются (или запускают другой бинарник), после чего завершаются. Вот kcalc так не делает, а две последние делают.
Используй:
bool QProcess::startDetached ( const QString & program, const QStringList & arguments, const QString & workingDirectory, qint64 * pid = 0 ) [static]
он ничего не ждет.