【发布时间】:2013-04-11 01:38:06
【问题描述】:
当我单击由 for 循环创建的每个按钮时,我试图打印出按钮编号。以下是我尝试过的。
import Tkinter as tk
root=tk.Tk()
def myfunction(a):
print a
for i in range(10):
tk.Button(root,text='button'+str(i),command=lambda:myfunction(i)).place(x=10,y=(10+(25*i)))
root.mainloop()
但不是打印出每个按钮编号,而是每次都给我最后一个按钮编号。有什么我可以做的,这样当我单击按钮 1 时,它会为 2 打印 1,2 ,依此类推?
【问题讨论】:
-
jared 的代码有点 hack,但这是由 lambda 函数引起的,如果你使用类,你不会有这个问题,command=self.command 并且属性对于类的对象是唯一的.
标签: python button callback tkinter