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
Libérer: 2025-01-01 09:25:11
original
873 Les gens l'ont consulté

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)
Copier après la connexion

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()
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal