Come usare un timer in Tkinter

Jinku Hu 15 febbraio 2024
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

Autore: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook