Tkinter 变量跟踪方法回调的参数是什么?
pythontkinterserver side programmingprogramming
Tkinter 变量 (var) 是为特定窗口小部件 (textvariable=var) 定义的,用于存储窗口小部件的更新值。有时,在更新变量信息时,可能需要处理一些额外的操作,例如读取、写入或未定义。
Tkinter 提供了一种使用回调函数 trace (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 小部件中输入一些内容。标签小部件将模拟输入值并在窗口上显示输出。
在控制台上,您将看到以下内容 −
H He Hel Hell Hello Hello Hello W Hello Wo Hello Wor Hello Worl Hello World