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 : 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
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
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 : 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)
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