tkinter et le temps.le sommeil
Je suis en train de supprimer du texte à l'intérieur d'une zone de texte après une attente de 5 secondes, mais au lieu de cela, le programme ne courir et ne le sommeil sur tout le reste. Aussi est-il un moyen pour moi de faire ma zone de texte sommeil donc, je peux utiliser un autre code que le texte est gelé?
from time import time, sleep
from Tkinter import *
def empty_textbox():
textbox.insert(END, 'This is a test')
sleep(5)
textbox.delete("1.0", END)
root = Tk()
frame = Frame(root, width=300, height=100)
textbox = Text(frame)
frame.pack_propagate(0)
frame.pack()
textbox.pack()
empty_textbox()
root.mainloop()
- Je n'ai pas beaucoup d'expérience avec TKinter, mais je suis sûr que vous devez soit utiliser une sorte de boucle d'événement ou un thread séparé.
- certainement pas d'un fil, et il y a déjà un événement de la boucle en cours d'exécution. C'est trivialement résolu à l'aide de
after
qui place un événement sur la file d'attente pour être traitées à un certain moment dans l'avenir.
Vous devez vous connecter pour publier un commentaire.
Vous devriez vraiment être en utilisant quelque chose comme la Tkinter après la méthode plutôt que
time.sleep(...)
.Il y a un exemple d'utilisation de la après la méthode à ce d'autres stackoverflow question.
Voici une version modifiée de votre script qui utilise la après la méthode: