tkinter
Försening av en funktion
Sök…
Syntax
- widget.after (fördröjning_ms, återuppringning, * args)
parametrar
Parameter | Beskrivning |
---|---|
delay_ms | Tid (millisekunder) som fördröjer samtalet till funktionen callback |
ring tillbaka | Funktion som kallas efter den givna delay_ms . Om denna parameter inte anges fungerar .after liknande time.sleep (i millisekunder) |
Anmärkningar
Syntax antar en widget
accepterad av metoden. .after
tidigare har skapats (dvs. widget=tk.Label(parent)
)
.efter()
.after(delay, callback=None)
är en metod som definieras för alla tkinterwidgets. Denna metod ringer helt enkelt funktionen callback
efter den givna delay
i ms. Om ingen funktion ges fungerar den som time.sleep
(men i millisekunder istället för sekunder)
Här är ett exempel på hur man kan skapa en enkel timer använda 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow