Een timer gebruiken in Tkinter

Tkinter root-venster heeft een speciale methode after die een functie aanroept na een bepaalde periode -

after(ms, func)

ms is het interval in de eenheid van ms ,

func is de opgeroepen functienaam.

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) roept de functie zelf aan na 1000 ms, daarom wordt de update_clock() functie uitgevoerd met het interval van 1000 ms en wordt de huidige tijd weergegeven in het Tkinter-label.

Aandacht

Houd er rekening mee dat de gegeven periode in de after methode niet gegarandeerd de functie aanroept na de precieze periode, omdat deze kan worden vertraagd als de toepassing bezig is, als gevolg van het feit dat Tkinter een thread heeft.

Tkinter timer klok