+-
python-如何使用PY_VAR0或PY_VAR1获得Entry值?
我有这样的简单代码:

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值? - 乐贴网