如何在 Tkinter 中使用定时器

Jinku Hu 2023年1月3日 2019年12月2日
如何在 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 定时器时钟

Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn