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。

更新于: 2023年9月5日

2K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告