我正在尝试将一个函数绑定(bind)到我的 Tkinter 根目录,该函数在用户按下回车键时使用react。这是代码:
def returnPressed(event):
print repr(event.widget)
master = Tk()
master.bind("<Return>", returnPressed)
myStringVar = StringVar(value="Foo")
myEntry = Entry(master, textvariable=myStringVar)
myEntry.grid()
master.mainloop()
这有效,但是现在我需要在 returnPressed 函数中获取 Entry 的 StringVar 变量。
我有小部件,但无法获取变量对象。我知道如何获取变量内容,但我确实需要该对象。
请您参考如下方法:
要获取小部件的任何属性,请使用cget:
print(event.widget.cget("textvariable"))
但是,在这个特定的实例中,由于某些实现细节,您得到的是 stringvar 的内部名称而不是 stringvar 本身。所以,你必须找到另一种方法。
最简单的方法可能是将 stringvar 实例传递给被调用的函数。您可以使用 lambda 或 functools.partial 执行此操作。例如:
def returnPressed(event, v):
...
master.bind("<Return>",lambda event, v=myStringVar: returnPressed(event, v))
