Maison >développement back-end >Tutoriel Python >Comment puis-je utiliser la méthode « après » de Tkinter pour générer des lettres aléatoires sur une interface graphique toutes les 5 secondes ?
La bibliothèque tkinter de Python permet un développement pratique d'interface graphique. La méthode after est un outil précieux au sein de tkinter, mais son utilisation appropriée peut prêter à confusion. Cet article vise à démystifier la méthode after, en vous guidant dans sa mise en œuvre avec un exemple spécifique.
Présentation de la question : Générer des lettres aléatoires
Un utilisateur a rencontré des difficultés lors de l'utilisation de la méthode after. Méthode Frame.after pour générer des lettres aléatoires apparaissant sur l’interface graphique toutes les 5 secondes. L'extrait de code fourni a invoqué par erreur Frame.after(500) :
import tkinter as tk root = tk.Tk() frame = tk.Frame(root) frame.after(500) root.mainloop()
Ce code n'atteindrait pas la fonctionnalité souhaitée. Au lieu de cela, la méthode after nécessite un argument supplémentaire spécifiant la fonction de rappel à exécuter après le délai.
La bonne solution : intégrer une fonction de rappel
Pour corriger le problème , nous devons passer une fonction de rappel comme deuxième argument à after. Cette fonction gérera la génération des lettres aléatoires. Vous trouverez ci-dessous le code correct :
def add_letter(): rand = random.choice(tiles_letter) tile_frame = tk.Label(frame, text=rand) tile_frame.pack() root.after(500, add_letter) tiles_letter.remove(rand) root.after(0, add_letter)
Ce code révisé inclut la fonction add_letter comme rappel. Lors de la définition de ce rappel, nous devons nous assurer qu'il est invoqué à plusieurs reprises pour générer en permanence des lettres aléatoires. Ceci est réalisé en appelant root.after(500, add_letter) dans la fonction add_letter elle-même.
Éviter les exceptions
Le code fourni n'a initialement pas réussi à gérer un cas d'angle important . Une fois la liste des tuiles_letter
épuisée, une exception serait levée. Pour éviter cela, nous avons ajouté une vérification conditionnelle au début de la fonction add_letter :
if not tiles_letter: return
Cette condition garantit que la fonction add_letter ne tente pas de générer de nouvelles lettres lorsque la liste est vide.
Conclusion
Utiliser correctement la méthode after implique de spécifier une fonction de rappel qui gère le souhait de l'utilisateur actions. En suivant les conseils fournis dans cet article, vous pouvez utiliser efficacement la méthode after dans vos applications tkinter.
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!