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。
廣告