Bonsoir, j'ai une interface PyQt5 avec un afficheur lcd. J'arrive à modifier sa valeur à partir d'un thread. Je souhaiterai créer un autre thread pour récupérer cette valeur depuis l'interface graphique. Pour d'autres widgets, ce sera , je pense le même principe. Merci d'avance. Voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 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.afficherDonnee) self.Thread.start() def afficherDonnee(self,regime): """Affichage de la valeur regime dans le l'afficheur""" self.lcdNumbe1r.display(regime) class ThreadAfficher(QtCore.QThread): """objet thread gérant l'envoi de la valeur regime""" 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
Partager