Come usare un timer in Tkinter

La finestra root di Tkinter ha un metodo dedicato after che chiama una funzione dopo un determinato periodo di tempo -

after(ms, func)

ms è l’intervallo nell’unità di misura ms,

func è il nome della funzione chiamata.

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) chiama la funzione stessa dopo 1000 ms, quindi, la funzione update_clock() viene eseguita all’intervallo di 1000 ms e visualizza l’ora corrente nell’etichetta Tkinter.

Attenzione

Siate consapevoli del fatto che il periodo dato nel metodo after non è garantito per chiamare la funzione dopo il periodo preciso, perché potrebbe essere ritardato se l’applicazione è occupata, a causa del fatto che Tkinter è a filo singolo.

Orologio timer Tkinter