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。


相关文章