Ho una classe derivata da QGraphicsView
, che contiene gli elementi -derived QGraphicsItem
. Voglio che questi elementi per cambiare il colore ogni volta che il cursore del mouse passa sopra di loro, così ho implementato hoverEnterEvent
(e hoverLeaveEvent
):QGraphicsItem non riceve gli eventi di passaggio del mouse
void MyGraphicsItem::hoverEnterEvent(QGraphicsSceneHoverEvent* event)
{
update (boundingRect());
}
Tuttavia, questo codice di gestore di eventi viene mai eseguito. Ho abilitato esplicitamente il tracciamento del mouse:
MyGraphicsView::MyGraphicsView(MainView *parent) :
QGraphicsView(parent)
{
setMouseTracking(true);
viewport()->setMouseTracking(true);
...
}
Ancora, senza fortuna. Che cosa sto facendo di sbagliato?
Ho avuto lo stesso problema e rimuovere l'implementazione 'mouseMoveEvent' dal mio' QGraphicsView' era anche necessario per risolverlo. Ora che ce l'ho fatta, probabilmente potrei aggiungere 'mouseMoveEvent' fino a quando non riuscirò a trovare un modo per non mangiare il' QEvent'. –
Grazie mille! Hai appena terminato una grande sofferenza –
@CoryKlein hai trovato il modo di utilizzare sia mouseMoveEvent che eventi hover? – lena