Maison >développement back-end >Tutoriel Python >Comment puis-je exécuter du code personnalisé simultanément avec la boucle principale de Tkinter sans multithreading ?
Exécuter du code personnalisé simultanément avec la boucle d'événements de Tkinter
Lors de l'utilisation de Tkinter, il devient évident que sa boucle d'événements consomme trop de temps de traitement , entravant l'exécution de code personnalisé. Plus précisément, dans un cas, une simulation d'un troupeau d'oiseaux nécessite un mouvement constant, mais ce mouvement est entravé par la domination du système par la boucle d'événements.
Pour résoudre ce problème et permettre au code personnalisé de s'exécuter simultanément avec la boucle principale sans la complexité du multithreading, la méthode after de l'objet Tk peut être utilisée.
from tkinter import * root = Tk() def move(): # Custom code to update bird positions root.after(2000, move) # Schedule the move() function to run again in 2 seconds root.mainloop() # Start the Tkinter event loop
La méthode after planifie l'exécution d'une fonction après un intervalle spécifié. Ici, nous l'utilisons pour planifier l'exécution de la fonction move() toutes les 2 secondes, donnant à notre code personnalisé la possibilité de s'exécuter entre les itérations de la boucle d'événement.
La déclaration de la méthode after 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."""
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!