В корневых окнах Tkinter есть метод, называемый after
, который можно использовать для планирования функции, вызываемой по истечении заданного периода времени.Если эта функция сама вызывает after
, вы устанавливаете автоматически повторяющееся событие.
Вот рабочий пример:
# for python 3.x use 'tkinter' rather than 'Tkinter'
import Tkinter as tk
import time
class App():
def __init__(self):
self.root = tk.Tk()
self.label = tk.Label(text="")
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=App()
Имейте в виду, что after
не гарантирует, что функция будет работать точно в срок.Он только планирует задание, которое будет выполнено через определенный промежуток времени.Если приложение занято, перед вызовом может возникнуть задержка, поскольку Tkinter является однопоточным.Задержка обычно измеряется в микросекундах.