Communication de données entre la fenêtre principale et un thread dans PyQt
Dans les applications PyQt, un scénario courant implique le partage de données entre la fenêtre principale et un fil tout en maintenant la sécurité du fil. Voici les approches recommandées :
Signaux et emplacements :
Exemple :
<code class="python">class Worker(QtCore.QThread): beep = QtCore.pyqtSignal(int) def __init__(self, sleep_time): super(Worker, self).__init__() self.sleep_time = sleep_time def run(self): i = 0 while True: i += 1 self.beep.emit(i) time.sleep(self.sleep_time) class MainWindow(QtGui.QWidget): def __init__(self): # ... self.worker = Worker(1) # Initial sleep time self.worker.beep.connect(self.update) self.worker.start() def update(self, number): # Update widget with number self.output.display(number)</code>
Avertissements :
Autres approches :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!