Salut

Voila ma problematique

Creer des attributs variables issue d une boucle for dans un menu cascade

Exemple

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()
Dans mon exemple chez moi j ai trois dossiers donc 3 lignes dans le menu
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