GUI

Python Tkinter Event Loop(1) 概要

Tk コンセプトの章にあるイベント処理を再確認する。

アプリケーションの最初のUIを構築した後、アプリケーションは Tk のイベントループに入る。イベントループは、システムのイベントキューから引き出されたイベントを、通常は1秒間に数十回、継続的に処理する。マウスやキーボードのイベントを監視し、必要に応じてコマンドのコールバックやイベントのバインディングを呼び出す。

あまり知られていないが、画面の更新はすべてイベントループの中だけで処理される。例えば、ラベルウィジェットのテキストを変更できる。しかし、その変更はすぐには画面に表示されない。代わりに、ウィジェットは再描画が必要なことを Tk に通知する。その後、他のイベントを処理する合間に、Tk のイベントループはウィジェットに自分自身を再描画するように要求する。すべての描画は、イベントループの中だけで行われる。ウィジェットを変更してからイベントループで実際に再描画されるまでの時間が非常に短いため、変更がすぐに行われたように見える。

アプリケーションのコールバックと画面の更新を示すイベントループ