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+ 閱讀量

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告