QProcess eredita la readAll da QIODevice, per cui, come accade per ogni stream di input, una volta che hai già letto tutto l'input, chiamare nuovamente la readAll non può dare esito positivo (a meno di non fare una seek ad inizio file, cosa che non credo sia possibile con lo standard output di un processo).
In altre parole, ti "bruci" la chance di leggere l'output del programma nella qDebug. Per ovviare al problema, prima costruisci una stringa contenente l'output che ti interessa:
e poi usala per il debug (se necessario) e come stringa da restituire:codice:QString out(p.readAll());
Per inciso, aggiungo il tag C++ al titolo, dato che le Qt si possono usare da più linguaggi.codice:qDebug("Result: %s", out); return out;

Rispondi quotando