ホームページ >バックエンド開発 >Python チュートリアル >Tkinter の「after」メソッドを使用して時間指定イベントを作成するにはどうすればよいですか?

Tkinter の「after」メソッドを使用して時間指定イベントを作成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-01 09:25:11898ブラウズ

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

tkinter での after メソッドの使用

tkinter を使用して GUI アプリケーションを操作する場合、指定された時間間隔が経過した後に特定のアクションを実行できると便利です。ここで、after メソッドが登場します。

after メソッドとは何ですか?

tkinter ウィジェットの after メソッドは、指定された時間遅延の後に実行されるアラーム コールバックを登録します。その構文は次のとおりです。

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

時間指定イベントの after メソッドの使用

具体的な例では、5 秒ごとにランダムな文字を画面に表示したいとします。これを実現するには、コールバック関数を 2 番目の引数として after に渡す必要があります。このコールバックには、ランダムな文字を生成して表示するコードが含まれます。

コードを変更する方法は次のとおりです。

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()

コードの詳細

  • add_letter 関数は、500 回ごとに実行されるコールバックになりました。ミリ秒。
  • add_letter 関数内で、tiles_letter リストからランダムな文字が選択され、画面に表示されます。
  • add_letter 関数は、after メソッドによって 500 ミリ秒後に再度呼び出されるようにスケジュールされています。 .
  • メインループ呼び出しの最初の引数として 0 が渡されることで、add_letter が確実にメインループが開始されるとすぐに呼び出されます。

追加の考慮事項

  • このコードは、tiles_letter リストに少なくとも 1 つの要素が含まれていることを前提としています。リストが空の場合、例外がスローされます。必要に応じて、このケースを処理するためのチェックを追加できます。
  • 特定の要件に基づいて遅延時間 (この例では 500) を調整することもできます。

以上がTkinter の「after」メソッドを使用して時間指定イベントを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。