1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| class FenetreAccueil(QWidget,accueil.Ui_Aide_aux_calculs_et_conversions):
"""fenetre d'accueil permettant l'acces aux differents utilitaires de calcul"""
def __init__(self,parent=None):
"""constructeur de la fenetre accueil"""
super(FenetreAccueil,self).__init__(parent)
self.setupUi(self)
# initialisation des variables des fenetres - permet de tracer le nb de fentres ouvertes
self.viscowindow = []
#actions liées aux boutons - declenche ouverture des fenetres
visco_func=partial(self.ouverture_fenetre_secondaire,self.viscowindow,FenetreConversionVisco, FenetreConversionVisco.fermetureconvvisco)
self.button_conv_visco.clicked.connect(visco_func)
#========================================================================
def ouverture_fenetre_secondaire(self,nom_fenetre,nom_classe,nom_signal):
ind=-1
for i in range (0,len(nom_fenetre)):
if nom_fenetre[i]==None:
ind=i
break
if ind==-1:
nom_fenetre.append(None)
ind=len(nom_fenetre)-1
nom_fenetre[ind] = nom_classe(ind,nom_fenetre)
nom_fenetre[ind].nom_signal.connect(self.fenclose)
nom_fenetre[ind].show()
#========================================================================
def fenclose(self,ind,nom_fenetre):
nom_fenetre[ind]=None
#############################################################################
#############################################################################
class FenetreConversionVisco(QWidget,conversion_visco.Ui_conv_visco):
"""fenetre permettant la conversion entre visco dyn et cinématique"""
#definition du signal
fermetureconvvisco=pyqtSignal(int,list)
#================== GESTION FENETRE ======================================================
def __init__(self,ind,nom_fenetre,parent=None):
super(FenetreConversionVisco,self).__init__(parent)
self.ind=ind
self.nom_fenetre=nom_fenetre
self.nom_signal=self.fermetureconvvisco
self.setupUi(self)
def closeEvent(self, event):
"""à la fermeture de cette fenêtre celle-ci envoie un signal à la
fenêtre accueil
"""
self.fermetureconvvisco.emit(self.ind,self.nom_fenetre)
event.accept() |
Partager