Explication fonctionnement boucle + lambda
Bonjour,
je m'arrache les cheveux sur le problème ci-dessous.
Est ce que quelqu'un peut m'expliquer :
1-pourquoi ça ne fonctionne pas?
2-quelle est la solution?
Voici mon script:
from tkinter import *
fen=Tk()
liste=[]
for i in range (5):
___liste.append(IntVar())
___liste[i].set(i)
___Button(fen, textvariable=liste[i], command = lambda : print("Vous avez appuyé sur le bouton",liste[i].get())).pack()
fen.mainloop()
La "même chose" mais qui fonctionne:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| from tkinter import *
fen=Tk()
liste=[]
for i in range (5):
liste.append(IntVar())
liste[i].set(i)
Button(fen, textvariable=liste[0], command = lambda : print("Vous avez appuyé sur le bouton",liste[0].get())).pack()
Button(fen, textvariable=liste[1], command = lambda : print("Vous avez appuyé sur le bouton",liste[1].get())).pack()
Button(fen, textvariable=liste[2], command = lambda : print("Vous avez appuyé sur le bouton",liste[2].get())).pack()
Button(fen, textvariable=liste[3], command = lambda : print("Vous avez appuyé sur le bouton",liste[3].get())).pack()
Button(fen, textvariable=liste[4], command = lambda : print("Vous avez appuyé sur le bouton",liste[4].get())).pack()
fen.mainloop() |
Merci par avance!
PS: évidemment avec les bonnes indentations!