Tkinter での関数の長期的な実行
イベント駆動型プログラミングでは、アプリケーションは継続的に実行され、イベントの発生に応じて応答します。イベント駆動型プログラミングでは、関数を順番に実行するのではなく、関数をキューに入れて特定の時間に実行します。
ケース スタディ: 点滅する四角形のアニメーション
点滅する四角形を作成するにはTkinter でアニメーションを使用する場合、アニメーションの関数を定義し、一定の間隔で実行するようにスケジュールできます。この問題に対処する方法は次のとおりです。
1.アニメーション関数を定義します。
def blink(rect, canvas): current_color = canvas.itemcget(rect, "fill") new_color = "red" if current_color == "white" else "white" canvas.itemconfigure(rect, fill=new_color)
この関数は、長方形の色を赤と白の間で切り替えます。
2.関数のスケジュールを設定します:
四角形を繰り返し点滅させるには、指定した間隔で実行するように点滅関数をスケジュールします:
root.after(1000, blink, rect, canv) root.after(2000, blink, rect, canv) root.after(3000, blink, rect, canv)
1、2、3 秒後、それに応じて長方形の色が変わります。
3.アニメーションを反復する (オプション):
アニメーションを無限に実行するには、その中で点滅関数を呼び出すことができます:
def blink(rect, canvas): ... canvas.after(1000, blink, rect, canvas)
このアプローチでは、停止するまでアニメーションを無期限に継続します。条件が満たされた場合 (ボタンのクリックなど)。
4.クラスベースのアプローチ (オプション):
大規模なプログラムの場合は、コードをクラスとして編成することをお勧めします:
from tkinter import * classMyApp(Tk): def __init__(self): ... self.start_button = Button(self, text="start blinking", command=self.start_blinking) ... def start_blinking(self): ... canvas.after(1000, self.blink)
このアプローチでは、アニメーション ロジックがクラス内にカプセル化されます。管理が容易になります。
以上がTkinter の `after()` メソッドを使用して点滅する四角形のアニメーションを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。