如何使用Python中的Tkinter建立一個自動更新的GUI?


GUI視窗包含許多控制元件,例如標籤、按鈕、文字框等。有時我們可能希望在檢視視窗時,控制元件的內容(例如標籤)能夠自動更新。

我們可以使用**after()**方法在一段時間後執行一個函式。例如,1000毫秒錶示1秒。我們連續呼叫一定時間間隔後呼叫的函式將更新文字或任何您希望發生的更新。

我們的視窗上有一個標籤。我們希望標籤的文字在1秒後自動更新。為了簡化示例,假設我們希望標籤顯示0到1000之間的某個數字。我們希望這個數字每1秒改變一次。

我們可以透過定義一個函式來實現這一點,該函式將標籤的文字更改為0到1000之間的某個隨機數。我們可以使用after()方法在1秒的間隔後連續呼叫此函式。

示例

from Tkinter import *
from random import randint
root = Tk()
lab = Label(root)
lab.pack()

def update():
   lab['text'] = randint(0,1000)
   root.after(1000, update) # run itself again after 1000 ms

# run first time
update()

root.mainloop()

這將每1000毫秒自動將標籤的文字更改為一個新數字。您可以根據需要更改時間間隔。可以修改update函式以執行所需的更新。

root.after(1000,update)

這行程式碼執行了重新呼叫update()函式的主要功能。

root.after()中的第一個引數指定希望函式重新呼叫的毫秒時間間隔。

第二個引數指定要重新呼叫的函式的名稱。

更新於:2021年3月11日

14K+ 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始
廣告