2

当按下按钮时,我正在尝试访问 Tkinter 中按钮的标签。这涉及返回对按下的目标按钮的引用。

目前,由于我必须输入参数,这是通过将command选项绑定到lambda函数来完成的,即

button['command'] = lambda: fun_to_call(arg)

有没有办法返回实例?我检查了 TKDocs 并没有涵盖。另外,我尝试使用单独的字符串列表来获取标签。但是,它只返回列表的最后一个元素(我相信这是由于 lambda 函数在创建按钮实例时没有将特定元素绑定到列表。我之前使用此列表来生成按钮列表。)

简而言之,一个基于事件的函数绑定到返回其父级(按下的按钮)的按钮。

4

1 回答 1

3
def add_callback(control, fun):
    def inner():
        return fun(control)
    control['command'] = inner

...

def test_callback(button):
    print "button instance:", button

b = Button(text="click me")
add_callback(b, test_callback)

更具声明性:

def with_callback(control, fun):
    def inner():
        return fun(control)
    control['command'] = inner
    return control

...
b = with_callback(Button(text="click me"), test_callback)
于 2012-06-05T03:55:05.593 回答