Como usar um temporizador em Tkinter
A janela raiz de Tkinter tem um método dedicado after
que chama uma função após um determinado período de tempo -
after(ms, func)
ms
é o intervalo na unidade de ms
- milisecond
,
func
é o nome da função chamada.
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)
chama a função em si após 1000
ms, portanto, update_clock()
função é executada no intervalo de 1000
ms e exibe a hora atual na etiqueta Tkinter.
Atenção
Esteja ciente de que o período dado no método after
não é garantido para chamar a função após o período preciso, pois pode ser atrasado se a aplicação estiver ocupada, resultando do fato de que o Tkinter é de rosca única.