Wie man einen Timer in Tkinter benutzt
Tkinter Root-Fenster hat eine spezielle Methode after
, die eine Funktion nach einer bestimmten Zeitspanne aufruft -
after(ms, func)
ms
ist das Intervall in der Einheit ms
,
func
ist der Name der aufgerufenen Funktion.
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)
ruft die Funktion selbst nach 1000
ms auf, daher wird die update_clock()
Funktion im Intervall von 1000
ms ausgeführt und zeigt die aktuelle Zeit im Tkinter-Label an.
Achtung
Seien Sie sich bewusst, dass die angegebene Zeitspanne in der after
Methode nicht garantiert ist, dass die Funktion nach der genauen Zeitspanne aufgerufen wird, da sie sich verzögern könnte, wenn die Anwendung beschäftigt ist, was darauf zurückzuführen ist, dass Tkinter Single-Threaded ist.