QGRAPHICSITEMは、マウスホバーイベントを受け取りません
-
05-10-2019 - |
質問
私は派生したクラスを持っています QGraphicsView
, 、 を含む QGraphicsItem
- 由来の要素。マウスカーソルがそれらの上に浮かぶたびに、これらの要素に色を変えたいので、私は実装しました hoverEnterEvent
(と hoverLeaveEvent
):
void MyGraphicsItem::hoverEnterEvent(QGraphicsSceneHoverEvent* event)
{
update (boundingRect());
}
ただし、このイベントハンドラーコードは実行されません。マウストラッキングを明示的に有効にしました:
MyGraphicsView::MyGraphicsView(MainView *parent) :
QGraphicsView(parent)
{
setMouseTracking(true);
viewport()->setMouseTracking(true);
...
}
それでも、運はありません。私は何が間違っているのですか?
解決
修正しました。使用する必要があります setAcceptHoverEvents(true)
私のコンストラクターで QGraphicsItem
- 派生したクラス。
他のヒント
私の場合、私が覆されてもホバーイベントは機能しません MouseMoveEvent 私の実装で qgraphicsView クラス。通話を追加してこれを修正しました
QGraphicsView::mouseMoveEvent(event);
イベントを親に伝播し、それがすべてのシーンアイテムにそれを送り出しました。
所属していません StackOverflow