Bonjour à tous,
Mon problème est le suivant :
J'ai 36 pushButtons qui doivent chacun ouvrir une fenêtre (QDialog) différente mais qui reposent sur le même modèle.
Cela ne me pose pas de problème à faire quand il y a peu de boutons mais avec 36 boutons j'aimerais automatiser la chose.
Dans l'idée, j'aimerais remplacer :
par quelque chose du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 self.connect(self.ui.pushButton1,SIGNAL('clicked()'),self.interfaceDialog1) self.connect(self.ui.pushButton2,SIGNAL('clicked()'),self.interfaceDialog2) self.connect(self.ui.pushButton3,SIGNAL('clicked()'),self.interfaceDialog3) self.connect(self.ui.pushButton4,SIGNAL('clicked()'),self.interfaceDialog4) self.connect(self.ui.pushButton5,SIGNAL('clicked()'),self.interfaceDialog5) self.connect(self.ui.pushButton6,SIGNAL('clicked()'),self.interfaceDialog6) #etc...
et d'autre part, remplacer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 for k in range(1,37): self.connect(self.ui.pushButton1k,SIGNAL('clicked()'),self.interfaceDialogk)
par :
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 def interfaceDialog1(self): self.dialog1 = Interface_Dialog() self.dialog1.setWindowTitle('Dialog 1') self.dialog1.ui.label.setText('Fenetre 1') self.dialog1.show() def interfaceDialog2(self): self.dialog2 = Interface_Dialog() self.dialog2.setWindowTitle('Dialog 2') self.dialog2.ui.label.setText('Fenetre 2') self.dialog2.show() def interfaceDialog3(self): self.dialog3 = Interface_Dialog() self.dialog3.setWindowTitle('Dialog 3') self.dialog3.ui.label.setText('Fenetre 3') self.dialog3.show() def interfaceDialog4(self): self.dialog4 = Interface_Dialog() self.dialog4.setWindowTitle('Dialog 4') self.dialog4.ui.label.setText('Fenetre 4') self.dialog4.show() def interfaceDialog5(self): self.dialog5 = Interface_Dialog() self.dialog5.setWindowTitle('Dialog 5') self.dialog5.ui.label.setText('Fenetre 5') self.dialog5.show() def interfaceDialog6(self): self.dialog6 = Interface_Dialog() self.dialog6.setWindowTitle('Dialog 6') self.dialog6.ui.label.setText('Fenetre 6') self.dialog6.show() #etc....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for k in range(1,37): def interfaceDialogk(self): self.dialogk = Interface_Dialog() self.dialogk.setWindowTitle('Dialog {}'.format(k)) self.dialogk.ui.label.setText('Fenetre {}'.format(k)) self.dialogk.show()
Je mets en pièces-jointes un exemple simplifié de ce que je veux faire. Le fichier à exécuter est "mainCode.py"
Merci d'avance de votre aide !
Alexandre
Partager