Tkinter变量回调方法的参数是什么?
Tkinter变量 (var) 是为了存储小部件的更新值而定义的 (textvariable=var) 。有时,更新变量信息时我们需要处理一些额外的操作,例如读取、写入或未定义的操作。
Tkinter提供了一种用回调函数跟踪更新变量的方法 (self, mode, callback) ,该方法需要处理操作类型 (read(r), write(w), undefined(u)) 。根据这些值,回调函数决定在回调函数中执行什么操作。其他两个值定义需要跟踪的变量(包含小部件信息)和变量的索引。
示例
在此示例中,我们将跟踪输入后更新的Entry小部件的值。
#导入所需库
from tkinter import*
#创建Tkinter框架的实例
win = Tk()
win.geometry("750x250")
#创建用于存储用户输入的变量
my_variable = StringVar()
def trace_when_Entry_widget_is_updated(var, index, mode):
print("{}".format(my_variable.get()))
my_variable.trace_variable("w", trace_when_Entry_widget_is_updated)
Label(win, textvariable = my_variable).pack(padx=5, pady=5)
Entry(win, textvariable = my_variable, width=20).pack(ipadx=20,padx=5, pady=5)
win.mainloop()
输出
执行上述代码将显示一个Entry小部件,用于存储输入变量。回调函数将跟踪变量的更新值,并在Label小部件中显示它。
现在,在指定的Entry小部件中输入内容,Label小部件将模仿输入值并在窗口中显示输出。
在控制台上,你会看到以下内容 −
H
He
Hel
Hell
Hello
Hello
Hello W
Hello Wo
Hello Wor
Hello Worl
Hello World