Tkinter と時間操作による同時実行性の管理
背景:
Tkinter では、次を使用して遅延を導入できます。 time.sleep() 関数。ただし、このアプローチでは実行がブロックされ、意図しない動作が発生する可能性があります。
質問:
ユーザーが 5 秒の遅延後にテキストボックス内のテキストを削除しようとしましたが、プログラムはそのまま残ります。代わりにアイドル状態になります。さらに、他のコードの実行中にテキストボックスをフリーズすることについても問い合わせます。
回答:
time.sleep():
代わりにtime.sleep() を使用する場合は、Tkinter で after メソッドを使用することを検討してください。このメソッドを使用すると、特定の遅延の後に実行されるコールバック関数をスケジュールでき、メイン スレッドを他のタスクのために解放できます。
遅延の実装:
スクリプトを次のように変更します。テキストを削除する前に 5 秒の遅延を導入するには:
from time import time from Tkinter import * def empty_textbox(): textbox.delete("1.0", END) root = Tk() frame = Frame(root, width=300, height=100) textbox = Text(frame) frame.pack_propagate(0) frame.pack() textbox.pack() textbox.insert(END, 'This is a test') textbox.after(5000, empty_textbox) root.mainloop()
テキストボックスの凍結:
テキストボックスを凍結するには、config() メソッドを使用して「状態」属性を「無効」に変更:
textbox.config(state='disabled')
以上がTkinter で同時実行性を管理し、遅延を効果的に実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。