wheel rueda mal inalambrico funciona activar c++ qt events qgraphicsview qgraphicsitem

c++ - rueda - scroll mouse no funciona windows 10



QGraphicsItem no recibe eventos de desplazamiento del mouse (2)

Tengo una clase derivada de QGraphicsView , que contiene elementos derivados de QGraphicsItem . Quiero que estos elementos cambien de color cada vez que el cursor del mouse se desplace sobre ellos, así que implementé hoverEnterEvent (y hoverLeaveEvent ):

void MyGraphicsItem::hoverEnterEvent(QGraphicsSceneHoverEvent* event) { update (boundingRect()); }

Sin embargo, este código de controlador de eventos nunca se ejecuta. He habilitado explícitamente el seguimiento del mouse:

MyGraphicsView::MyGraphicsView(MainView *parent) : QGraphicsView(parent) { setMouseTracking(true); viewport()->setMouseTracking(true); ... }

Aún así, no hay suerte. ¿Qué estoy haciendo mal?


Arreglado. Necesito usar setAcceptHoverEvents(true) en el constructor de mi clase QGraphicsItem .


En mi caso, los eventos de desplazamiento no funcionarán si invalido mouseMoveEvent en mi implementación de la clase QGraphicsView . Arreglé esto agregando una llamada a

QGraphicsView::mouseMoveEvent(event);

que propagó el evento al padre, que a su vez lo envió a todos los elementos de la escena.