Gestion plusieurs fenêtres
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 :
Code:
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 |
Ensuite pour chaque fenêtre j'ai une classe associée :
Code:
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 :
Code:
1 2
| def ouverture_fenetre_secondaire(self,nom_fenetre,nom_classe,nom_signal)
....(reprise du code précédent) |
Première question : est-il possible de passer en argument d'une méthode le nom d'une autre classe ?
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