Мне получили класс из QGraphicsView
, который содержит QGraphicsItem
- полученные элементы. Я хочу, чтобы эти элементы изменили цвет каждый раз, когда курсор мыши нависает над ними, таким образом, я реализовал hoverEnterEvent
(и hoverLeaveEvent
):
void MyGraphicsItem::hoverEnterEvent(QGraphicsSceneHoverEvent* event)
{
update (boundingRect());
}
Однако этот код обработчика событий никогда не выполняется. Я явно включил отслеживание мыши:
MyGraphicsView::MyGraphicsView(MainView *parent) :
QGraphicsView(parent)
{
setMouseTracking(true);
viewport()->setMouseTracking(true);
...
}
Однако, никакая удача. Что я делаю неправильно?
Исправлено. Мне нужно использовать setAcceptHoverEvents (true)
в конструкторе моего класса, производного от QGraphicsItem
.