Tkinter のイベント ループと同時にカスタム コードを実行する
Tkinter を利用していると、そのイベント ループが過剰な処理時間を消費していることが明らかになりますカスタムコードの実行を妨げます。具体的には、ある例では、鳥の群れのシミュレーションには一定の動きが必要ですが、この動きがシステムのイベント ループの支配によって妨げられています。
この問題を解決し、カスタム コードをメインループと同時に実行できるようにするにはマルチスレッドの複雑さを必要とせずに、Tk オブジェクトの after メソッドを使用できます。
from tkinter import * root = Tk() def move(): # Custom code to update bird positions root.after(2000, move) # Schedule the move() function to run again in 2 seconds root.mainloop() # Start the Tkinter event loop
after メソッドは、関数の実行後に関数の実行をスケジュールします。指定された間隔。ここでは、これを使用して move() 関数が 2 秒ごとに実行されるようにスケジュールし、イベント ループの繰り返しの間にカスタム コードを実行する機会を与えます。
after メソッドの宣言は次のとおりです。
def after(self, ms, func=None, *args): """Call function once after given time. MS specifies the time in milliseconds. FUNC gives the function which shall be called. Additional parameters are given as parameters to the function call. Return identifier to cancel scheduling with after_cancel."""
以上がマルチスレッドを使用せずにカスタム コードを Tkinter のメインループと同時に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。