tkinter
Retrasando una función
Buscar..
Sintaxis
- widget.after (delay_ms, callback, * args)
Parámetros
Parámetro | Descripción |
---|---|
delay_ms | Tiempo (milisegundos) que se retrasa la llamada a la función de callback |
llamar de vuelta | Función que se llama después del delay_ms dado. Si este parámetro no se proporciona, .after actúa de manera similar a time.sleep (en milisegundos) |
Observaciones
La sintaxis asume que un widget
aceptado por el método .after
ha sido creado previamente (es decir, widget=tk.Label(parent)
)
.después()
.after(delay, callback=None)
es un método definido para todos los widgets tkinter. Este método simplemente llama a la función de callback
después de la delay
dada en ms. Si no se proporciona ninguna función, actúa de forma similar a time.sleep
(pero en milisegundos en lugar de segundos)
Aquí hay un ejemplo de cómo crear un temporizador simple 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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow