Bonjour,

je n'arrive pas a avoir le comportement que je veux avec un "callback" de bouton.

voici l'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
import Tkinter as tk
 
root = tk.Tk()
 
def callback(txt):
  print "--> callback: %s"%txt
 
aList = ["A", "B"]
for txt in aList:
  button = tk.Button(root, text=txt)
  button["command"] = lambda:callback(txt)
  button.config(width=30, height=10)
  button.pack()
 
root.mainloop()
lorsque j'appuie sur un bouton (A ou B), j'obtiens le meme resultat :
or biensur, je voudrais que ce soit la lettre du bouton.

Comment faire pour que la fonction lambda ne soit pas liee a la variable temporaire "txt", mais a la valeur (a l'instance pour les cas plus complexes) de "txt" au moment de la creation de la fonction lambda ?

Quelqu'un pourrait-il m'eclairer ?

merci.