Utiliser correctement QThreads dans les applications PyQt : un guide pratique
Dans PyQt, exploiter QThreads est crucial pour maintenir la réactivité de l'interface graphique tout en effectuant des tâches chronophages. tâches. Cependant, la mise en œuvre de sa méthode « run » n’est pas une approche efficace. Cet article explique comment utiliser efficacement QThreads en Python.
Exemple d'implémentation appropriée
Considérez l'extrait de code suivant, qui sépare l'interface graphique du processus de calcul en différents threads. :
<code class="python">from PyQt4 import QtGui, QtCore import sys import random class Example(QtCore.QObject): signalStatus = QtCore.pyqtSignal(str) def __init__(self, parent=None): # ... def _connectSignals(self): # ... def createWorkerThread(self): # ... def forceWorkerReset(self): # ... def forceWorkerQuit(self): # ... class WorkerObject(QtCore.QObject): signalStatus = QtCore.pyqtSignal(str) def __init__(self, parent=None): # ... @QtCore.pyqtSlot() def startWork(self): # ... def primeFactors(self, n): # ... class Window(QtGui.QWidget): def __init__(self): # ... @QtCore.pyqtSlot(str) def updateStatus(self, status): # ... if __name__=='__main__': # ...</code>
Détails clés de la mise en œuvre :
En adhérant à ces directives, QThreads peut être utilisé efficacement dans les applications PyQt, garantissant que l'interface graphique reste réactive pendant les tâches en arrière-plan sont exécutés.
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!