Bonjour à tous.
Je rencontre un petit souci entre le thread principale et secondaire.
Dans le thread principale qui est ma fenetre d'interface developper sous PyQt5, j'envoie une variable "NomSQL" a un thread secondaire pour effectuer une lecture d'une base de donnée SQL. Jusque la tout vas bien.
A la lecture, le thread enregistre les valeur dans 2 tableaux X et Y avec des valeur int. la aussi tout vas bien.
Je bloque sur le moyen d'envoyer ces 2 tableaux au thread principale pour dessiner un graphique. Je pense que c'est qu'une histoire de paramètres dans cette ligne : "Graphique = pyqtSignal(int,int) "mais je ne trouve pas .
Voici le code du thread:Merci d'avance pour votre aide
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
51
52
53
54
55
56
57
58 class Matplot(QtCore.QThread): # Thread de creation Table SQL Graphique = pyqtSignal(int,int) # liaison signal entre la fenetre et le thread def __init__(self, parent, NomSQL): super(Matplot, self).__init__(parent) # Permet la transmission de parametre entre la class fenetre et le QThread self.NomSQL = NomSQL #Transmission de la variable Nb def run(self): X = [] Y = [] try: mydb = mc.connect( host="localhost", user=USER.strip(), password=MDP.strip(), database="RADIORT" ) mycursor = mydb.cursor() query1 = "SELECT time FROM " + self.NomSQL query2 = "SELECT BdfMoy FROM " + self.NomSQL mycursor.execute(query1) rows = mycursor.fetchall() for row in rows: X.append(int('{0}'.format(row[0]))) mycursor.execute(query2) rows = mycursor.fetchall() for row in rows: Y.append(int('{0}'.format(row[0]))) self.Graphique.emit(X, Y) finally: mydb.close()
Partager