访问Tkinter中的顶级小部件

时间:2013-05-26 21:42:05

标签: python tkinter

我如何从函数访问top level widget,用作按钮或菜单的命令?可以使用command=lambda: f(params)在此命令函数中添加params,但我认为它可能更容易。

1 个答案:

答案 0 :(得分: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()