Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menggunakan Kaedah `selepas` Tkinter untuk Mencipta Acara Bermasa?

Bagaimanakah Saya Boleh Menggunakan Kaedah `selepas` Tkinter untuk Mencipta Acara Bermasa?

Linda Hamilton
Lepaskan: 2025-01-01 09:25:11
asal
910 orang telah melayarinya

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

Menggunakan Kaedah selepas dalam tkinter

Apabila bekerja dengan aplikasi GUI menggunakan tkinter, adalah berguna untuk dapat melakukan tindakan tertentu selepas selang masa yang ditentukan telah berlalu. Di sinilah kaedah selepas memainkan peranan.

Apakah Kaedah selepas itu?

Kaedah selepas widget tkinter mendaftarkan panggilan balik penggera yang dilaksanakan selepas kelewatan masa tertentu. Sintaksnya ialah:

widget.after(delay_ms, callback=None, *args)
Salin selepas log masuk

Menggunakan Kaedah selepas untuk Acara Bermasa

Dalam contoh khusus anda, anda ingin membuat huruf rawak muncul pada skrin setiap 5 saat. Untuk mencapai ini, anda perlu menghantar fungsi panggil balik sebagai hujah kedua kepada selepas. Panggilan balik ini akan mengandungi kod yang menjana dan memaparkan huruf rawak.

Begini cara anda boleh mengubah suai kod anda:

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()
Salin selepas log masuk

Memecahkan Kod

  • Fungsi add_letter kini ialah panggilan balik yang akan dilaksanakan selepas setiap 500 milisaat.
  • Di dalam fungsi add_letter, huruf rawak dipilih daripada senarai tiles_letter dan dipaparkan pada skrin.
  • Fungsi add_letter dijadualkan dipanggil semula selepas 500 milisaat dengan kaedah selepas .
  • 0 diluluskan sebagai hujah pertama selepas dalam panggilan gelung utama memastikan add_letter adalah dipanggil sebaik sahaja gelung utama bermula.

Pertimbangan Tambahan

  • Kod menganggap bahawa senarai tiles_letter mengandungi sekurang-kurangnya satu elemen. Jika senarai itu kosong, ia akan membuang pengecualian. Anda boleh menambah semakan untuk mengendalikan kes ini jika perlu.
  • Anda juga mungkin mahu melaraskan masa tunda (500 dalam contoh ini) berdasarkan keperluan khusus anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Kaedah `selepas` Tkinter untuk Mencipta Acara Bermasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan