我正在尝试通过以列表形式存储的一组数据在tkinter中动态构建一些按钮。我无法解决的事情是如何在回调函数中添加参数。由于回调中的代码要等到回调时间才执行,因此此时回调中使用的变量已更改值。
这是(非常)简化的代码版本:
from Tkinter import *
from ttk import *
mylist = ['a','b','c','d','e']
class App:
def __init__(self, master):
self.frame = Frame(master)
self.frame.pack()
for i in range (0,len(mylist)):
setattr(self, 'button' + str(i), Button(self.frame, text=mylist[i], command= lambda: self.buttoncall(i)))
getattr(self, 'button' + str(i)).pack(side=LEFT)
def buttoncall(self,input):
print mylist[input]
root = Tk()
app = App(root)
root.mainloop()
皈依舞
相关分类