Bonjour à tous,
(Pyqt 4.5.1 - Linux - python 2.6.2)
J'ai une interface graphique qui, lors de l'appui sur un bouton, lance un script qui écrit ce qu'il fait sur la sortie standard stdout. Je souhaiterais afficher non pas sur stdout mais dans un widget qtextedit (en mode readonly) en "temps réel" c'est à dire de façon similaire à la façon dont les logs s'affichent sur stdout.
Après de nombreuses recherches, je n'arrive toujours pas à mes fins ... Les logs de mon script s'écrivent en deux gros paquets.
Voici le principe que j'ai utilisé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 (...) QtCore.QObject.connect(self.processLog,QtCore.SIGNAL("readyReadStandardOutput()"), self.log) (...) Def log(): (...) While canReadLine(): Self.textEdit.append(self.proc.readLine()) (...)
Mais les logs s'affichent dans le qtextedit en deux fois vers le milieu de l'exécution et vers la fin et à chaque fois en envoyant la moitié des logs d'un coup.
La fonction readyreadstandardoutput ne devrait elle pas envoyer un signal dès qu'une nouvelle ligne est apparue dans stdout et donc le qtext widget se remplir en "temps réel"?
Merci de votre aide !
Partager