Tengo una clase derivada de QGraphicsView
, que contiene QGraphicsItem
-deriva los elementos. Quiero que estos elementos cambian de color cada vez que el cursor del ratón pasa sobre ellos, por lo que he implementado hoverEnterEvent
(y hoverLeaveEvent
):QGraphicsItem no recibe eventos de desplazamiento del mouse
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 hubo suerte. ¿Qué estoy haciendo mal?
Tuve el mismo problema y también fue necesario eliminar la implementación 'mouseMoveEvent' de mi' QGraphicsView' para solucionarlo. Ahora que lo tengo funcionando, probablemente podría agregar 'mouseMoveEvent' nuevamente, siempre que encuentre una forma de que no se coman el' QEvent'. –
¡Muchas gracias! Acabas de terminar con un gran sufrimiento –
@CoryKlein ¿encontraste la forma de usar los eventos mouseMoveEvent y hover? – lena