Maison >développement back-end >Tutoriel Python >Comment puis-je utiliser la méthode « after » de Tkinter pour créer des événements chronométrés ?

Comment puis-je utiliser la méthode « after » de Tkinter pour créer des événements chronométrés ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-01 09:25:11890parcourir

How Can I Use Tkinter's `after` Method to Create Timed Events?

Utilisation de la méthode after dans tkinter

Lorsque vous travaillez avec des applications GUI utilisant tkinter, il est utile de pouvoir effectuer certaines actions après l'écoulement d'un intervalle de temps spécifié. C'est là que la méthode after entre en jeu.

Qu'est-ce que la méthode after ?

La méthode after d'un widget tkinter enregistre un rappel d'alarme qui est exécuté après un délai donné. Sa syntaxe est la suivante :

widget.after(delay_ms, callback=None, *args)

Utilisation de la méthode after pour les événements chronométrés

Dans votre exemple spécifique, vous souhaitez faire apparaître une lettre aléatoire à l'écran toutes les 5 secondes. Pour y parvenir, vous devez passer une fonction de rappel comme deuxième argument à after. Ce rappel contiendra le code qui génère et affiche la lettre aléatoire.

Voici comment modifier votre code :

import random
import time
from tkinter import *

root = Tk()

w = Label(root, text="GAME")
w.pack()

frame = Frame(root, width=300, height=300)
frame.pack()

L1 = Label(root, text="User Name")
L1.pack(side=LEFT)
E1 = Entry(root, bd=5)
E1.pack(side=LEFT)

tiles_letter = ['a', 'b', 'c', 'd', 'e']

def add_letter():
    if not tiles_letter:
        return
    rand = random.choice(tiles_letter)
    tile_frame = Label(frame, text=rand)
    tile_frame.pack()
    root.after(500, add_letter)
    tiles_letter.remove(rand)

root.after(0, add_letter)
root.mainloop()

Décomposer le code

  • La fonction add_letter est désormais le rappel qui sera exécuté toutes les 500 millisecondes.
  • À l'intérieur du Fonction add_letter, une lettre aléatoire est choisie dans la liste tuiles_letter et affichée à l'écran.
  • La fonction add_letter est programmée pour être rappelée après 500 millisecondes par la méthode after.
  • Le 0 passé comme premier argument après dans l'appel mainloop garantit que add_letter est appelé dès que la boucle principale commence.

Considérations supplémentaires

  • Le code suppose que la liste tuiles_letter contient au moins un élément. Si la liste est vide, une exception sera levée. Vous pouvez ajouter des contrôles pour gérer ce cas si nécessaire.
  • Vous souhaiterez peut-être également ajuster le délai (500 dans cet exemple) en fonction de vos besoins spécifiques.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:n'importe lequel dans PyTorchArticle suivant:n'importe lequel dans PyTorch