Comment utiliser un timer dans Tkinter
La fenêtre racine de Tkinter a une méthode dédiée after
qui appelle une fonction après une période de temps donnée -
after(ms, func)
ms
est l’intervalle dans l’unité de ms,
func
est le nom de la fonction appelée.
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)
appelle la fonction elle-même après 1000
ms, donc, la fonction update_clock()
est exécutée à l’intervalle de 1000
ms et affiche l’heure actuelle dans l’étiquette de Tkinter.
Attention
Sachez que la période donnée dans la méthode after
n’est pas garantie d’appeler la fonction après la période précise, car elle pourrait être retardée si l’application est occupée, résultant du fait que Tkinter est monofilaire.