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.