2008年5月30日金曜日

wx.PyEvent, wxPyCommandEvent

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
丁寧にドキュメントを読めば書いてあるのでざっくりと。

* wx.PyEvent
- Keyが押されたとか、マウスボタンがdownしたとか、低水準のイベントのためのモノ
* wxPyCommandEvent
- アプリケーションレベルで意味のある高水準のイベントを作るためのモノ

なので、処理のされ方に差がある。前者はwindowを超えて伝播しない(ResumePropagateとかで明示的に指定すれば別だが。ShouldPropagate, StopPropagateも参照のこと)
後者は、ハンドラが存在しなかった場合は親ウィンドウをどんどんさかのぼっていく。最終的にはアプリのハンドラが試される。

* イベントは同一ウィンドウに複数のハンドラを持ちうる事に注意

同じイベントを複数回処理したいことがある。そのときはEvent::Skipを使い、次のイベントハンドラに処理の機会を与える。ウィンドウのデフォルトのハンドラが処理する機能を後からフックしたいが、デフォルトのハンドラの処理を妨げたくないときなどに使う。

0 件のコメント: