Tkinter 变量 trace 方法回调函数的参数是什么?


Tkinter 变量 **(var)** 是为特定部件 **(textvariable=var)** 定义的,用于存储部件更新后的值。有时,在更新变量信息时,可能需要处理一些额外的操作,例如读取、写入或未定义的操作。

Tkinter 提供了一种使用回调函数 trace **(self, mode, callback)** 更新变量的方法,该方法接受进程的操作,例如 **读取(r)**、**写入(w)** 或 **未定义(u)**。根据这些值,回调函数决定在回调函数中需要执行什么操作。其他两个值定义了需要跟踪的变量(包含部件信息)和变量的索引。

示例

在本例中,我们将跟踪 Entry 部件的值,该值在用户在其中输入值时会更新。

#Import the required library
from tkinter import*
#Create an instance of Tkinter frame
win = Tk()
win.geometry("750x250")
#create a variable to store the User Input
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

更新于: 2021年4月22日

3K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.