Bonjour tous le monde, je suis face à un problème tout bête.
J'ai une classe MainWindow et une autre Qdialog. Dans une méthode de la fenêtre principale, je déclenche l'ouverture de la fenêtre de dialogue, puis effectue une opération get_proxies de plusieurs minutes :
Sauf que l'affichage ne se fait qu'après l’exécution de get_proxies(). Alors après un long travail de recherche, j'ai pu remarquer qu'il faut surcharger la méthode showevent de QDialog, pour y mettre un signal comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 pu = Loading(parent=self) pu.show() proxies = ProxiesManager.get_proxies()
et ensuite coté MainWindow, ajouter un connecteur qui exécute la suite des instructions une fois déclenché. Sauf que dans la pratique ça ne fonctionne pas (la fenêtre s'ouvre, mais les actions ne s'effectuent pas ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class Loading(QtGui.QDialog): dialogShown = QtCore.Signal() ... def showEvent(self, event): super(Loading, self).showEvent(event) self.dialogShown.emit() ...
J'aurais espéré une solution simple et élégante au début, peut-être que je m'y prend mal pour ce que je souhaite faire.
Merci d'avance pour vos solutions.
Partager