J'ai une classe dérivée de QGraphicsView
, qui contient QGraphicsItem
-éléments dérivés. Je veux que ces éléments changent de couleur lorsque le curseur de la souris sur eux, donc je mis en œuvre hoverEnterEvent
(et hoverLeaveEvent
):QGraphicsItem ne reçoit pas les événements de survol de la souris
void MyGraphicsItem::hoverEnterEvent(QGraphicsSceneHoverEvent* event)
{
update (boundingRect());
}
Cependant, ce code de gestionnaire d'événements est jamais exécuté. J'ai explicitement activé le suivi de la souris:
MyGraphicsView::MyGraphicsView(MainView *parent) :
QGraphicsView(parent)
{
setMouseTracking(true);
viewport()->setMouseTracking(true);
...
}
Toujours pas de chance. Qu'est-ce que je fais mal?
J'ai eu le même problème et la suppression de l'implémentation 'mouseMoveEvent' de mon' QGraphicsView' était également nécessaire pour le réparer. Maintenant que je l'ai fonctionné, je pourrais probablement rajouter 'mouseMoveEvent' tant que je trouverai un moyen de ne pas manger le' QEvent'. –
Merci beaucoup! Vous venez de terminer une grande souffrance –
@CoryKlein avez-vous trouvé le moyen d'utiliser les événements mouseMoveEvent et hover? – lena