tkinter
Retarder une fonction
Recherche…
Syntaxe
- widget.after (delay_ms, callback, * args)
Paramètres
Paramètre | La description |
---|---|
delay_ms | Temps (millisecondes) qui retarde l'appel à la fonction callback |
rappeler | Fonction appelée après le delay_ms donné. Si ce paramètre n'est pas renseigné, .after agit de manière similaire à time.sleep (en millisecondes) |
Remarques
La syntaxe suppose qu'un widget
accepté par la méthode .after
a déjà été créé (ie widget=tk.Label(parent)
)
.après()
.after(delay, callback=None)
est une méthode définie pour tous les widgets tkinter. Cette méthode appelle simplement la fonction callback
après le delay
donné en ms. Si aucune fonction n'est donnée, elle agit de manière similaire à time.sleep
(mais en millisecondes au lieu de secondes)
Voici un exemple de la façon de créer une minuterie simple en utilisant 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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow