Bonjour,
Je créé une liste de boutons via une boucle "for i in ", en voulant passer ma variable i à la fonction voulue, mais seule la derniere valeur de i est prise en compte :

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
 
def initialize(self):
    self.grid()
 
    self.buttonTab = []    
    countUser = 0
    for i in range(1,6) :
        self.buttonTab += [Tkinter.Button(self,text="User "+str(i), command=lambda:self.loginCmd(i))]
        self.buttonTab[countUser].grid(column=0,row=countUser)
        countUser += 1
 
def loginCmd(self,id):
    print str(id)+" has log in"
    for but in self.buttonTab : 
        Tkinter.Button.destroy(but)
Ce code créé correctement les 5 boutons(User 1, User 2, ...), correctement placés (row=1,2,...), ils sont meme correctements détruits, mais tous me renvoient toujours la meme valeur : "5 has log in"

C'est surement une erreur tres simple, mais je n'arrive pas à comprendre...

Merci d'avance,

Cordialement