La première solution me paraît la plus facile et adaptée, si je comprends bien ce que tu envisages; bien sûr je n'ai pas la moindre idée de l'existant...
S'il est de taille, ça peut être une bonne chose d'embrayer sur la séparation process de calcul/process GUI. Pour les faire communiquer, c'est de suite plus chaud
Si tu es sous linux avec un support DBus, tu peux utiliser QtDBus. Si le dialogue ne contient pas trop de données, tu peux passer par les redirections d'entrées/sorties (du côté du process pour l'interface, de l'autre, tu pilotes avec QProcess, qui a des fonctions qui ne nécessite pas l'intervention d'une boucle d'événement).
C'est vraiment les 2 premières méthodes qui me viennent à l'esprit; je me suis toujours servi de QProcess pour diriger un process console depuis une interface, rarement l'inverse. (Et QtDBus, je sais qu'il existe, mais je l'ai pas encore testé, ni lui, ni DBus en fait
)