tkinter
Een functie uitstellen
Zoeken…
Syntaxis
- widget.after (delay_ms, callback, * args)
parameters
Parameter | Beschrijving |
---|---|
delay_ms | Tijd (milliseconden) die de oproep tot de functie callback heeft vertraagd |
Bel terug | Functie die wordt aangeroepen na de gegeven delay_ms . Als deze parameter niet wordt gegeven, .after werkt vergelijkbaar met time.sleep (in milliseconden) |
Opmerkingen
Syntaxis gaat ervan uit dat een widget
geaccepteerd door de methode. .after
eerder is gemaakt (dwz widget=tk.Label(parent)
)
.na()
.after(delay, callback=None)
is een methode die is gedefinieerd voor alle tkinter-widgets. Deze methode roept eenvoudigweg de functie callback
na de gegeven delay
in ms. Als er geen functie wordt gegeven, werkt deze vergelijkbaar met time.sleep
(maar in milliseconden in plaats van seconden)
Hier is een voorbeeld van het maken van een eenvoudige timer met behulp van after
:
# 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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow