09/10/25 03:33:00
>>329
本当にごめん。329を直してみた。
基本的にビューはウィジットとして、アイテムやシーンを描画する役目と、
シーンへ、イベントを伝える役目を担う。
だからビューのイベントハンドラーをオーバーライドしてすることは、
主に、拡大縮小などの見た目に関することを操作したり、イベントをシーンに伝える役目
としての処理を書けばいいと思う。文字通りビューウィジットとしての役割。
シーンは、ロジカル座標を提供し、背景の設定を提供する。
シーンはアイテムのリストを持っていてこれを管理する。
またビューから伝達されたイベントをアイテムに伝える。
だから、シーンのイベントハンドラーをオーバーライドして、
アイテムの共通の処理は、こちらで書けばいいと思う。
もちろん、その中でアイテムリストをイテレートして
アイテムのメソッドをコールしてもよい。
シーンはQObjectだから、シーンにQApplication::sendEvent()
で直接イベントを送ることもできる。
アイテムには、それぞれがそれぞれの振る舞いがあるから、
アイテム自身のイベントハンドラーをオーバーライドして、
そのアイテム独自の振る舞いはそこで書けばいいと思う。