我如何访问top level widget
用作按钮或菜单命令的功能?可以通过使用在此命令函数中添加参数command=lambda: f(params)
,但我认为它可能更容易。
问问题
348 次
1 回答
3
您可以使用 lambda,就像您提到的那样:
command=lambda: f(params)
或者你可以关闭:
def make_callback(params):
def callback():
print(params)
return callback
params = 1,2,3
button = tk.Button(master, text='Boink', command=make_callback(params))
或者,您可以使用一个类并传递一个绑定方法。的属性self
可以包含您必须作为参数传递的信息。
import Tkinter as tk
class SimpleApp(object):
def __init__(self, master, **kwargs):
self.master = master
self.params = (1,2,3)
self.button = tk.Button(master, text='Boink', command=self.boink)
self.button.pack()
def boink(self):
print(self.params)
root = tk.Tk()
app = SimpleApp(root)
root.mainloop()
于 2013-05-26T21:48:15.437 回答