tkinter
Eine Funktion verzögern
Suche…
Syntax
- widget.after (delay_ms, callback, * args)
Parameter
Parameter | Beschreibung |
---|---|
delay_ms | Zeit (Millisekunden) , die den Aufruf der Funktion verzögert callback |
Ruf zurück | Funktion, die nach den angegebenen delay_ms . Wenn dieser Parameter nicht angegeben wird, .after ähnlich wie time.sleep (in Millisekunden). |
Bemerkungen
Die Syntax setzt voraus, dass ein widget
das von der Methode .after
akzeptiert wurde, zuvor erstellt wurde (dh widget=tk.Label(parent)
).
.nach dem()
.after(delay, callback=None)
ist eine für alle Tkinter-Widgets definierte Methode. Diese Methode ruft einfach die Funktion callback
nach der angegebenen delay
in ms. Wenn keine Funktion angegeben ist, time.sleep
es sich ähnlich wie time.sleep
(aber in Millisekunden statt Sekunden)
Hier ein Beispiel, wie Sie einen einfachen Timer mit after
erstellen:
# import tkinter
try:
import tkinter as tk
except ImportError:
import Tkinter as tk
class Timer:
def __init__(self, parent):
# variable storing time
self.seconds = 0
# label displaying time
self.label = tk.Label(parent, text="0 s", font="Arial 30", width=10)
self.label.pack()
# start the timer
self.label.after(1000, self.refresh_label)
def refresh_label(self):
""" refresh the content of the label every second """
# increment the time
self.seconds += 1
# display the new time
self.label.configure(text="%i s" % self.seconds)
# request tkinter to call self.refresh after 1s (the delay is given in ms)
self.label.after(1000, self.refresh_label)
if __name__ == "__main__":
root = tk.Tk()
timer = Timer(root)
root.mainloop()
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow