gpt4 book ai didi

python - 如何使用 PY_VAR0 或 PY_VAR1 获取 Entry 值?

转载 作者:太空宇宙 更新时间:2023-11-04 06:02:41 30 4
gpt4 key购买 nike

我有这样简单的代码:

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,例如使用 lambdas,而不是使用 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 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23986010/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com