L'intégration de code défini par l'utilisateur dans la boucle d'événements de Tkinter peut être un défi. Dans ce cas, un programmeur novice rencontre des problèmes où Tkinter domine la boucle d'événements, empêchant sa simulation de troupeau d'oiseaux de s'exécuter en continu.
Pour résoudre ce problème, l'objet Tk fournit une méthode puissante : après. La syntaxe de cette méthode est la suivante :
def after(self, ms, func=None, *args): """Call function once after given time. MS specifies the time in milliseconds. FUNC gives the function which shall be called. Additional parameters are given as parameters to the function call. Return identifier to cancel scheduling with after_cancel."""
En utilisant after, vous pouvez planifier l'exécution d'une fonction après un intervalle de temps spécifié. Voici un exemple :
from tkinter import * root = Tk() def task(): print("hello") root.after(2000, task) # reschedule event in 2 seconds root.after(2000, task) root.mainloop()
Dans cet exemple, la fonction de tâche est planifiée pour s'exécuter toutes les 2 secondes dans la boucle d'événements Tkinter. La fonction mainloop garantit que Tkinter continue de traiter les événements pendant que les tâches planifiées s'exécutent.
Cette solution fournit un moyen fiable et simple d'exécuter du code externe parallèlement à la boucle d'événements de Tkinter, éliminant ainsi le besoin de concepts multithread complexes et évitant le hackish. méthode « maintien du bouton ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!