Python:如何使用循环更新 tkinter 标签?
pythontkinterserver side programmingprogramming
我们通常使用 Tkinter Label 小部件在应用程序中显示文本和图像。假设我们想要创建一个应用程序,这样每当应用程序执行时,Label 小部件就会不断更新值。为了实现这一点,我们将使用 StringVar 对象并使用 while 循环更新其值,只要满足特定条件,该循环就会进行迭代。
Tkinter 中的 StringVar 对象可以帮助管理小部件(例如 Entry 小部件或 Label 小部件)的值。您可以将 StringVar 对象分配给小部件的 textvariable。例如,
data = ['Car', 'Bus', 'Truck', 'Bike', 'Airplane'] var = StringVar(win) my_spinbox = Spinbox(win, values=data, textvariable=var)
在这里,我们创建了一个字符串列表,后面跟着一个 StringVar 对象 "var"。接下来,我们将 var 分配给 Spinbox 小部件的 textvariable。要获取 Spinbox 的当前值,可以使用 var.get()。
示例
以下示例演示了如何使用 while 循环更新 tkinter 标签 −
# 导入所需的库 from tkinter import * # 创建 tkinter 框架的实例 win = Tk() # 设置 tkinter 窗口的大小 win.geometry("700x300") # 初始化 StringVar var = StringVar() def label_update(): num = 0 while 1: # 更新 StringVar num = num + 1 var.set("Count up to: " + str(num)) win.after(200, win.update()) if num==100: break # 创建标签小部件 label = Label(win, textvariable=var, font='Arial 17 bold') label.pack(pady=20) button = Button(win, text="Count", command=label_update) button.pack() win.mainloop()
输出
执行时,程序将显示以下窗口 -
单击"计数"按钮时,它将显示一个标签小部件并开始更新其值,直到变为 100。