「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 「after」メソッドを使用して Tkinter で同時実行を実現するにはどうすればよいですか?

「after」メソッドを使用して Tkinter で同時実行を実現するにはどうすればよいですか?

2024 年 11 月 22 日に公開
ブラウズ:840

How can I achieve concurrency in Tkinter using the 'after' method?

「after」メソッドを使用した Tkinter での同時実行

Tkinter で GUI アプリケーションを操作する場合、他のタスクの実行中に応答性を維持することが重要です。一般的なシナリオの 1 つは、一定の時間遅延の後に UI 要素を操作する必要があることです。ただし、「time.sleep」を使用すると、UI がフリーズする可能性があります。

この問題に対処するために、Tkinter は、指定された遅延の後に関数が呼び出されるようにスケジュールできる 'after' メソッドを提供します。メイン イベント ループをブロックせずに実行できます。

次のコードを考えてみましょう。テキスト ボックスは 'time.sleep':

def empty_textbox():
    textbox.insert(END, 'This is a test')
    sleep(5)
    textbox.delete("1.0", END)

このコードでは、'empty_textbox' 関数に 'sleep(5)' への呼び出しが含まれており、プログラムが 5 秒間一時停止します。この間、UI は応答しなくなり、ユーザーの操作が妨げられます。

「after」メソッドの使用

「time.sleep」を使用する代わりに、目標を達成するための「後」メソッド。コードの修正版は次のとおりです:

def empty_textbox():
    textbox.delete("1.0", END)

textbox.insert(END, 'This is a test')
textbox.after(5000, empty_textbox)

このコードでは、「after」メソッドを使用して、「empty_textbox」関数が 5000 ミリ秒 (5 秒) の遅延後に呼び出されるようにスケジュールしています。これにより、スケジュールされた関数の実行を待機している間、プログラムは他のタスクを続行できます。遅延が経過すると、「empty_textbox」関数が呼び出され、テキスト ボックスからテキストが削除されます。

「after」メソッドを利用すると、プログラムの実行をブロックしたり、プログラムをフリーズしたりすることなく、目的の動作を実現できます。 UI。これにより、応答性の高いユーザーフレンドリーなインターフェイスが確保され、同時に時間制限のあるアクションを実行できるようになります。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3