Как использовать таймер в Tkinter

Jinku Hu 3 Январь 2023 18 Апрель 2020
Как использовать таймер в Tkinter

Корневое окно Tkinter имеет специальный метод после, который вызывает функцию по истечении заданного периода времени -

after(ms, func)

ms - это интервал в единице ms,

функция - это называемое имя функции.

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 мс, поэтому функция update_clock() выполняется с интервалом 1000 мс и отображает текущее время в метке Tkinter.

Внимание
Имейте в виду, что заданный период в методе после не гарантирован для вызова функции по истечении точного периода, так как он может быть задержан, если приложение занято, в результате того, что 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