Bonjour à tous,
J'ai une question d'ordre "fonctionnel" sur l'utilisation d'une classe Worker en thread. Je crois avoir compris dans les grandes lignes signaux/slots. Je ne suis pas un connaisseur de Qt en Python ou en C mais je vois l'idée et l'intérêt.
Je fais un GUI qui permettra de piloter beaucoup d'appareils et de gérer de multiples tâches dans le même temps. Idéalement j'imagine qu'en C++ je gagnerai en optimisation mais à l'instant t j'ai surtout des SDK Python...
Pour cela j'ai fait un main.py avec une interface et je cherche à avoir plusieurs processus que je peux lancer depuis le main (acquisition de données).
1 2 3 4
| self.worker= Worker(self.data_1, self.data_2, self.data_3)
self.thread_1 = QtCore.QThread()
self.worker.moveToThread(self.thread_1)
self.thread_1.start() |
Puis dans le Worker je lance un while...
Mais lorsque j'ai un signal dans le main et que je veux lancer une fonction dans le Worker (type update d'un paramètre) et que j'utilise
self.worker.methode_1(self.update_data1)
est-ce que cela utilise le main ou le worker d'un point de vue thread ?
Je remarque que j'ai souvent des freezes et je soupçonne d'avoir mal optimisé les utilisations des threads qui permettrait de fluidifier l'interface.
Peut-être que ce n'est pas très clair
Merci
Partager