Boucle for pour ajuster la commande d un menu
Salut
Voila ma problematique
Creer des attributs variables issue d une boucle for dans un menu cascade
Exemple
Code:
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