У корневых окон 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 является однопоточным. Задержка обычно измеряется в микросекундах.
Вот [пример кода о том, как использовать 'root.after()' для реализации таймера.] (Https://gist.github.com/zed/5440b9372a15d86b5c47) – jfs