tkinter
Ritardare una funzione
Ricerca…
Sintassi
- widget.after (delay_ms, callback, * args)
Parametri
Parametro | Descrizione |
---|---|
delay_ms | Tempo (millisecondi), che è in ritardo la chiamata alla funzione callback |
richiama | Funzione chiamata dopo il dato delay_ms . Se questo parametro non viene fornito, .after agisce in modo simile a time.sleep (in millisecondi) |
Osservazioni
La sintassi presuppone un widget
accettato dal metodo. .after
è stato precedentemente creato (ad es. widget=tk.Label(parent)
)
.dopo()
.after(delay, callback=None)
è un metodo definito per tutti i widget tkinter. Questo metodo chiama semplicemente la funzione callback
dopo il dato delay
in ms. Se non viene fornita alcuna funzione, agisce in modo simile a time.sleep
(ma in millisecondi anziché secondi)
Ecco un esempio di come creare un semplice timer usando 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow