S.O.S QProcess (console ou lecture des flux)
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:
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:
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 :cry:
Avant que quelqu'un me le propose
Code:
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:
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 :mouarf:
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 :zoubi: