如何获取Entry组件关联的StringVar对象而非文本值?
获取Entry组件关联的StringVar对象问题
我正尝试获取与Entry组件关联的StringVar对象,但始终无法实现。之前找到的相关问题答案均不适用:
entry["textvariable"]和entry.cget("textvariable")仅返回StringVar的名称而非对象本身- 按说明应该能通过
entry.getvar(name)从名称获取StringVar,但该方法返回的是StringVar的文本内容(str类型)而非对象本身
我使用的是Python 3.11.9版本,不清楚为何会出现这种情况,同时希望找到无需依赖StringVar名称的方法——毕竟未显式设置StringVar的Entry组件,似乎关联着一个无名称的StringVar。
示例代码如下:
from tkinter import * from tkinter.ttk import * root = Tk() stringVar = StringVar(root, "test") # 实际场景中无法直接访问这个变量,只能通过Entry获取 entry = Entry(root, textvariable=stringVar) entry.pack() name1 = entry["textvariable"] name2 = entry.cget("textvariable") print(name1 == name2) # 输出True shouldBeStringVar = entry.getvar(name1) print(name1, type(name1)) # 输出 PY_VAR0 <class 'str'> print(shouldBeStringVar, type(shouldBeStringVar)) # 输出 test <class 'str'>
内容的提问来源于stack exchange,提问作者Choosechee
相关产品推荐
相关产品推荐

