Mam klasę pochodną od QGraphicsView
, która zawiera QGraphicsItem
-przygotowane elementy. Chcę te elementy, które zmieniają kolor, gdy kursor myszy znajdzie się nad nimi, tak I wdrożone hoverEnterEvent
(i hoverLeaveEvent
):QGraphicsItem nie odbiera zdarzeń myszy po najechaniu myszką
void MyGraphicsItem::hoverEnterEvent(QGraphicsSceneHoverEvent* event)
{
update (boundingRect());
}
Jednak ten kod obsługi zdarzenia nigdy nie jest wykonywany. Mam wyraźnie włączone śledzenie myszy:
MyGraphicsView::MyGraphicsView(MainView *parent) :
QGraphicsView(parent)
{
setMouseTracking(true);
viewport()->setMouseTracking(true);
...
}
Nadal nie ma szczęścia. Co ja robię źle?
Miałem ten sam problem i usunięcie poprawki 'mouseMoveEvent' z mojego' QGraphicsView' również było konieczne, aby to naprawić. Teraz, gdy mam to działa, mógłbym prawdopodobnie dodać 'mouseMoveEvent', dopóki znajdę sposób na to, aby nie zjadł' QEvent'. –
Dziękuję bardzo! Właśnie zakończyłeś wielkie cierpienie –
@CoryKlein znalazłeś sposób na użycie zdarzeń mouseMoveEvent i hover? – lena