QGraphicsItem のサブクラスがあります。デフォルトでは、ポインタがアイテムのboundingRect内にあり、かつmousePressEventも発生した場合、QGraphicsItemはmouseMoveEventsのみを受け取ります。
このサブクラスが、メンバーである QGraphicsScene 内で発生するすべての mouseMoveEvents を受け取るようにします (できればアイテム座標で)。これは可能ですか?
はい。を使用QGraphicsItem::grabMouse()
して、すべてのマウス イベントを確実に取得できます。そうする場合、Qt は次のことを約束します。
このアイテムは、次のイベントのいずれかが発生するまで、シーンのすべてのマウス イベントを受け取ります。
- アイテムが見えなくなる
- アイテムはシーンから削除されます
- アイテムが削除されます
- アイテム呼び出し ungrabMouse()
- 別のアイテムは、grabMouse(); を呼び出します。他のアイテムが ungrabMouse() を呼び出すと、アイテムはマウス グラブを取り戻します。