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 :
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
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 console s'affiche bien et le programme fonctionne correctement si j'utilise
sauf que dans ce cas je ne peux l'IHM n'attend pas que le programme console soit finit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ... QProcess::startDetached(prg,arguList); ...
Avant que quelqu'un me le propose
c'est pas bon non plus, c'était prévisible mais bon qui ne tente rien n'a rien ^^
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(); ...
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)
voila si vous pouvez m'aider ca serait géniale
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 ...
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![]()
Partager