Bonjour tout le monde !
Je reviens avec ma gestion de plusieurs fenêtres (suite de cette discussion https://www.developpez.net/forums/d1...eurs-fenetres/)
La solution trouvée me convient bien mais je voulais "optimiser" un peu tout ça.
J'ai plusieurs sous fenêtres à ouvrir à partir d'une page d'accueil.
Pour le moment j'utilise ce fonctionnement :
Ensuite pour chaque fenêtre j'ai une classe associée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #actions liées aux boutons - declenche ouverture des fenetres self.button_conv_visco.clicked.connect(self.visco) def visco(self): """lance la fenetre associee a la conversion de viscosite""" ind=self.quellefenetre(self.viscowindow) self.viscowindow[ind] = FenetreConversionVisco(ind) # prépare la future fermeture de la fenêtre conversion viscosite self.viscowindow[ind].fermetureconvvisco.connect(self.viscoclose) # affiche la fenêtre conversion viscosite self.viscowindow[ind].show() #======================================================================== def viscoclose(self,ind): """méthode apppelée par la fermeture d'une fenetre conversion viscosite""" self.viscowindow[ind]=None
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class FenetreConversionVisco(QWidget,Ui_conv_visco): """fenetre permettant la conversion entre visco dyn et cinématique""" #definition du signal fermetureconvvisco=pyqtSignal(int) ...
Sauf que pour chaque nouvelle fenêtre je crée ces deux méthodes... pas top top au final.
Je voulais donc essayer de passer à une version plus générale du type :
Première question : est-il possible de passer en argument d'une méthode le nom d'une autre classe ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 def ouverture_fenetre_secondaire(self,nom_fenetre,nom_classe,nom_signal) ....(reprise du code précédent)
Deuxième question : est-ce que je peux me servir du signal crée dans la classe FenetreconversionVisco comme argument également ?
Merci d'avance pour votre aide
Bonne fin de journée
Partager