PyQt et thread

Signaler
Messages postés
8
Date d'inscription
vendredi 23 juillet 2010
Statut
Membre
Dernière intervention
26 octobre 2013
-
Bonjour. J'ai réalisé un programme test avec PyQt dans lequel j'ai mis un Qlcd. J'arrive à en modifier sa valeur en Python dans un thread. Je voudrais maintenant lire sa valeur depuis un autre thread pour l'utiliser ensuite. Comment faire?
Voici mon code. Merci d'avance.
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import os,sys


# --- importation du fichier de description GUI ---
from ui_testLcd import *

# classe principale contenant le code actif

class myApp(QWidget, Ui_Form1): # la classe reçoit le Qwidget principal
# Note : ici self représente la classe
def __init__(self, parent=None):
QWidget.__init__(self) # initialise le Qwidget principal
self.setupUi(parent) # Obligatoire
self.Thread = ThreadAfficher(self)
self.Thread.jobDone.connect(self.lcdNumbe1r.display)
self.Thread.start()



class ThreadAfficher(QtCore.QThread):
"""objet thread """
jobDone = pyqtSignal(int)
def __init__(self,parent=None):
super(ThreadAfficher,self).__init__(parent)

def run(self):
while 1:
self.jobDone.emit(3200) #envoi d'une valeur à afficher





# fonction principale exécutant l'application Qt
def main(args):
a=QApplication(args) # crée l'objet application
f=QWidget() # crée le QWidget racine
c=myApp(f) # appelle la classe contenant le code de l'application
f.show() # affiche la fenêtre QWidget
r=a.exec_() # lance l'exécution de l'application
return r


# pour rendre le fichier *.py exécutable
if __name__=="__main__": # pour rendre le code exécutable
main(sys.argv) # appelle la fonction main