Tkinter.Button(... command) lambda and argument problem

Jay jaysherby at gmail.com
Fri Sep 15 21:02:38 EDT 2006


Thanks for the tip, but that breaks things later for what I'm doing.

bearophileHUGS at lycos.com wrote:
> In that case you don't need a lambda:
>
> import Tkinter as tk
>
> class Test:
>     def __init__(self, parent):
>         buttons = [tk.Button(parent, text=str(x+1),
> command=self.highlight(x)) for x in range(5)]
>         for button in buttons:
>             button.pack(side=tk.LEFT)
>
>     def highlight(self, x):
>         print "highlight", x
>
> root = tk.Tk()
> d = Test(root)
> root.mainloop()
> 
> Bye,
> bearophile




More information about the Python-list mailing list