ホームページ >バックエンド開発 >Python チュートリアル >GUI をフリーズさせずに Tkinter で更新をスケジュールするにはどうすればよいですか?

GUI をフリーズさせずに Tkinter で更新をスケジュールするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-08 15:00:16834ブラウズ

How Can I Schedule Updates in Tkinter Without Freezing the GUI?

Tkinter での更新のスケジュール

Tkinter では、時計などのリアルタイム情報を動的に表示するためにタイマーまたは時計が必要です。ただし、ループ内で time.sleep() を使用すると、GUI がフリーズする可能性があります。

Tkinter の after メソッドの使用

Tkinter のルート ウィンドウには、実行をスケジュールできる after メソッドが用意されています。指定された時間間隔の後に実行される関数。関数内で after を再帰的に呼び出すと、イベントを自動的に繰り返すことができます。

コード例:

import Tkinter as tk
import time

class App:
    def __init__(self):
        self.root = tk.Tk()
        self.label = tk.Label(text="")
        self.label.pack()
        self.update_clock()
        self.root.mainloop()

    def update_clock(self):
        now = time.strftime("%H:%M:%S")
        self.label.configure(text=now)
        self.root.after(1000, self.update_clock)

app=App()

この例では、表示するために App クラスが作成されます。 Tkinter ウィンドウ内の時計。 update_clock メソッドは、after メソッドを使用して毎秒繰り返し実行されるようにスケジュールされています。これにより、GUI をフリーズさせることなく、クロックを動的に更新できます。

注:

After は、関数が時間どおりに正確に実行されることを保証しません。ジョブをスケジュールしますが、実際の実行時間はアプリのワークロードによって異なる場合があります。 Tkinter では、遅延は通常マイクロ秒単位で測定されます。

以上がGUI をフリーズさせずに Tkinter で更新をスケジュールするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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