Skip to main content
 首页 » 编程设计

python之从 Tkinter Entry 小部件中获取文本变量

2025年05月04日11yxwkf

我正在尝试将一个函数绑定(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))