tkinter
Opóźnianie funkcji
Szukaj…
Składnia
- widget.after (delay_ms, callback, * args)
Parametry
Parametr | Opis |
---|---|
opóźnienie_ms | Czas (w milisekundach), który opóźnia wywołanie callback funkcji |
oddzwonić | Funkcja wywoływana po danym delay_ms . Jeśli ten parametr nie zostanie podany, .after działa podobnie do time.sleep (w milisekundach) |
Uwagi
Składnia zakłada widget
przyjętą metodą .after
został wcześniej założone (tj widget=tk.Label(parent)
)
.po()
.after(delay, callback=None)
to metoda zdefiniowana dla wszystkich widżetów tkinter. Ta metoda po prostu wywołuje funkcję callback
po określonym delay
w ms. Jeśli nie podano żadnej funkcji, działa ona podobnie do time.sleep
(ale w milisekundach zamiast sekund)
Oto przykład, jak utworzyć prosty timer za pomocą 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow