+-
我有这样的简单代码:
from tkinter import *
def _show_value(*pargs):
print(*pargs)
root = Tk()
entry_var1 = StringVar()
entry_var1.trace('w', _show_value)
entry_var2 = StringVar()
entry_var2.trace('w', _show_value)
e1 = Entry(root, textvariable=entry_var1)
e1.pack()
e2 = Entry(root, textvariable=entry_var2)
e2.pack()
root.mainloop()
我想在每次写入时动态打印e1和e2的内容.但是我得到的不是文字,而是:
PY_VAR0 w
PY_VAR0 w
PY_VAR1 w
PY_VAR1 w
如何从基于PY_VAR0的e1获取文本,以及当出现PY_VAR1时从e2获取文本?这是entry_var1和entry_var2的一些内部名称吗?如何使用PY_VAR0和PY_VAR1引用entry_var1和entry_var2?
最佳答案
您可以通过两种方式来实现.
首先,使用根窗口的globalgetvar方法.
def _show_value(*pargs):
print(*pargs)
print(root.globalgetvar(pargs[0]))
这应该给您相应条目的文本.
其次,也许更推荐的是将StringVar引用传递给_show_value,例如使用lambda,而不是使用Tk的全局变量:
from tkinter import *
def _show_value(v, *pargs):
print(*pargs)
print(v.get())
root = Tk()
entry_var1 = StringVar()
entry_var1.trace('w', lambda *pargs: _show_value(entry_var1, *pargs))
entry_var2 = StringVar()
entry_var2.trace('w', lambda *pargs: _show_value(entry_var2, *pargs))
e1 = Entry(root, textvariable=entry_var1)
e1.pack()
e2 = Entry(root, textvariable=entry_var2)
e2.pack()
root.mainloop()
点击查看更多相关文章
转载注明原文:python-如何使用PY_VAR0或PY_VAR1获得Entry值? - 乐贴网