Tkinter で時計アプリケーションの更新をスケジュールする
Tkinter では、それ自体を更新する時計を作成することが課題となる場合があります。これを実現するためにループ内で time.sleep() を使用すると、GUI がフリーズする可能性があります。この記事では、Tkinter で更新をスケジュールし、動作クロックを作成できるようにする方法について説明します。
Tkinter ルート ウィンドウには、after メソッドが用意されています。このメソッドは、指定された時間間隔の後に関数が呼び出されるようにスケジュールします。スケジュールされた関数内で after を呼び出すことで、定期的なイベントが確立されます。
これは Python コードの例です:
import Tkinter as tk import time class App(): def __init__(self): # Initialize the Tkinter window self.root = tk.Tk() # Create the Label widget to display the time self.label = tk.Label(text="") self.label.pack() # Schedule the initial clock update self.update_clock() # Run the Tkinter event loop self.root.mainloop() def update_clock(self): # Get the current time formatted as "hh:mm:ss" now = time.strftime("%H:%M:%S") # Update the Label widget with the current time self.label.configure(text=now) # Schedule the next clock update self.root.after(1000, self.update_clock) app = App()
関数呼び出しをスケジュールした後は、関数呼び出しが正確に実行されない可能性があることに注意してください。アプリのアクティビティの可能性があるため、時間通りに到着します。ただし、Tkinter はシングルスレッドであるため、通常、遅延はマイクロ秒オーダーで最小限に抑えられます。
以上がGUI をフリーズさせずに Tkinter でスムーズに更新するクロックを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。