Bijour tout le monde,

Je débute avec Qt (que je trouve bien simpa et simple a utiliser) mais la j'ai un problème avec l'utilisation de QProcess

Dans mon programme je dois lancer un programme externe (console) voila pourquoi j'utilise QProcess mais je veux attendre que ce programme externe soit terminé pour continuer a utiliser mon IHM.

Vous aller me dire facile :
utilise :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
...
QProcess p(this);
p.start(prg,arguList);
p.waitForFinished();
...
la je vous répond : "Oui ca fait ce que je veux sauf que je souhaite voir la console avec le programme externe qui s'exécute" En effet dans ce cas la console ne s'affiche pas

la console s'affiche bien et le programme fonctionne correctement si j'utilise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
...
QProcess::startDetached(prg,arguList);
...
sauf que dans ce cas je ne peux l'IHM n'attend pas que le programme console soit finit

Avant que quelqu'un me le propose
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
...
QProcess p(this);
p.startDetached(prg,arguList);
p.waitForFinished();
...
c'est pas bon non plus, c'était prévisible mais bon qui ne tente rien n'a rien ^^


Donc j'ai eu une idée qui consiste a utiliser la 1ere solution et d'afficher dans une zone de texte le contenu de la console qui ne s'affiche pas lol et la je sèche.

en effet je n'arrive pas à utiliser ce qui est proposé ici:
http://qt.developpez.com/faq/?page=q...ation_Qprocess


je suis arriver a un truc qui ressemble a ca (y'a des erreurs maintenant car j'ai modifier plein de truc)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
...
QProcess p(this);
connect(&p,SIGNAL(readyReadStandardOutput () ),this,SLOT(outputProcess()) );
connect(&p,SIGNAL(readyReadStandardError() ),this,SLOT(outputProcess()) );
p.setReadChannelMode(QProcess::MergedChannels);
p.start(prg,arguList);
...
 
 
...
 
label->text(p.getLine());  //très certainement faux
...
voila si vous pouvez m'aider ca serait géniale

Si quelqu'un a deja fait ca et qu'il peut me montrer le bout de code correspondant je suis preneur

Par avance merci a vous