Python:如何使用循环更新 tkinter 标签?
我们通常使用 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 标签:
# Import the required libraries from tkinter import * # Create an instance of tkinter frame win = Tk() # Set the size of the tkinter window win.geometry("700x300") # Initialize a StringVar var = StringVar() def label_update(): num = 0 while 1: # Update the StringVar num = num + 1 var.set("Count up to: " + str(num)) win.after(200, win.update()) if num==100: break # Create a label widget 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()
输出
执行后,程序将显示以下窗口:
单击“计数”按钮后,它将显示一个 Label 控件并开始更新其值,直到它变成 100。
广告