liaison en thread principale et secondaire
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:
Code:
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() |
Merci d'avance pour votre aide