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()
输出
在执行时,程序将显示以下窗口 –
点击”Count”按钮后,它将显示一个标签小部件,并开始更新其值,直到达到100。