如何监听任何 Entry 更改事件?
How to listen to any Entry change events?
我正在编写一个小程序,每秒将来自 API 的值填充到 Entry 组件中。但我也需要用户能够随时自行更改任何值。
所以我现在拥有的是:
from tkinter import *
root = Tk()
sv = StringVar()
def callback():
print(sv.get())
return True
e = Entry(root, textvariable=sv, validate="key", validatecommand=callback)
e.grid()
e = Entry(root)
e.grid()
root.mainloop()
这样我就可以在他们按下某个键时激活我的回调函数。但是,当值被更改 Entry 组件的 API 自动收报机更改时,我也需要它发生。每当任何条目上的任何条目 text/value 发生更改时,我都需要调用我的函数。
我曾经在 Delphi 中编写代码,我们有一个用于编辑的 onChage 事件,但在 Python 中我有点迷路了。
您可以在 StringVar
:
上使用 trace
方法
def trace_method(*args):
#do your thing...
sv.trace("w",trace_method)
如果需要传递参数,可以使用lambda
:
def trace_method(*args,parameter=None):
if parameter:
print (parameter)
sv.trace("w",lambda *args: trace_method(parameter="Something"))
我正在编写一个小程序,每秒将来自 API 的值填充到 Entry 组件中。但我也需要用户能够随时自行更改任何值。 所以我现在拥有的是:
from tkinter import *
root = Tk()
sv = StringVar()
def callback():
print(sv.get())
return True
e = Entry(root, textvariable=sv, validate="key", validatecommand=callback)
e.grid()
e = Entry(root)
e.grid()
root.mainloop()
这样我就可以在他们按下某个键时激活我的回调函数。但是,当值被更改 Entry 组件的 API 自动收报机更改时,我也需要它发生。每当任何条目上的任何条目 text/value 发生更改时,我都需要调用我的函数。 我曾经在 Delphi 中编写代码,我们有一个用于编辑的 onChage 事件,但在 Python 中我有点迷路了。
您可以在 StringVar
:
trace
方法
def trace_method(*args):
#do your thing...
sv.trace("w",trace_method)
如果需要传递参数,可以使用lambda
:
def trace_method(*args,parameter=None):
if parameter:
print (parameter)
sv.trace("w",lambda *args: trace_method(parameter="Something"))