Salut
Voila ma problematique
Creer des attributs variables issue d une boucle for dans un menu cascade
Exemple
Dans mon exemple chez moi j ai trois dossiers donc 3 lignes dans le menu
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 import Tkinter from Tkinter import * import tkFileDialog as FD import glob import os import sys class viewer: def __init__(self): self.fen=Tkinter.Tk() self.fen.title('Gestion Antares Viewer') self.fen.geometry('1024x768') self.menubar=Menu(self.fen) self.menuecran=Menu(self.menubar,tearoff=0) chemin=os.getcwd() print chemin dossierfolder=os.listdir(chemin+"\\donnees") print dossierfolder self.dossier=[] self.label=[] for files in dossierfolder: if os.path.isdir(chemin+"\\donnees\\"+files): self.dossier.append(chemin+"\\donnees\\"+files) self.label.append(files) print self.dossier print self.label for r in range(len(self.label)): menu=self.menuecran.add_command(label=self.label[r],command=lambda:self.dossiertravail(self.dossier[r])) self.menubar.add_cascade(label="Ecran",menu=self.menuecran) self.fen.config(menu=self.menubar) self.fen.mainloop() def dossiertravail(self,dossier): print dossier if __name__=='__main__': viewer()
Quand je clique sur la premiere ligne du menu cascade il me renvoit toujours self.dossier[2]
La derniere valeur de r pour les 3 lignes
Je veux que pour chaques lignes je passe un attribut different a la meme commande dossiertravail
Ou comment puis retrouver l index de la ligne ou je clique
Merci
Partager