chen zeguang wrote:
code is in the end.
I want to print different number when pressing different button.
Yet the program outputs 8 no matter which button is pressed.
I guess it's because the callback function is not established untill
the button is pressed, and i has already reached to 8.
then How to add callbacks that is the same function with different
argument?
CODE:
from Tkinter import *
root = Tk()
def func(x):
print x
return
func_en=[]
for i in range(9):
func_en.append(lambda:func(i))
for i in range(9):
func_en[i]()
for i in range(9):
Button(root, text='%d'%i, command=func_en[i]).pack()
from Tkinter import *
root = Tk()
def func(x):
def _printme():
print x
return _printme
for i in range(9):
Button(root, text='%d'%i, command=func(i)).pack()
Surely someone will explain why your code was not working, I can't
'cause I don't use lambda, it brings more problems than it solves (maybe
I'm not talented enough).
Above is how I would have written the code, I tested it, looks like it's
working.
JM
--
http://mail.python.org/mailman/listinfo/python-list