如何在 Tkinter 中使用定時器

Tkinter root 視窗具有專用方法 after,此方法會在給定時間後呼叫函式-

after(ms, func)

ms 是時間間隔,單位為 ms

func 是被呼叫的函式名稱。

try:
    import Tkinter as tk
except:
    import tkinter as tk
    
import time

class Clock():
    def __init__(self):
        self.root = tk.Tk()
        self.label = tk.Label(text="", font=('Helvetica', 48), fg='red')
        self.label.pack()
        self.update_clock()
        self.root.mainloop()

    def update_clock(self):
        now = time.strftime("%H:%M:%S")
        self.label.configure(text=now)
        self.root.after(1000, self.update_clock)

app=Clock()

self.root.after(1000, self.update_clock)1000 ms 之後呼叫該函式本身,因此, update_clock() 函式以 1000 ms 為間隔執行一次,在 Tkinter 標籤中顯示當前時間。

注意

請注意,after 不能保證方法中設定的時間會非常精確呼叫該函式,因為如果應用程式繁忙,而 Tkinter 是單執行緒的,則該延遲時間可能會延長。

Tkinter 定時器時鐘

comments powered by Disqus