Tôi có một lớp bắt nguồn từ QGraphicsView
, trong đó có QGraphicsItem
các phần tử được lưu trữ. Tôi muốn những yếu tố này thay đổi màu sắc bất cứ khi nào con trỏ chuột di chuyển lên họ, vì vậy tôi thực hiện hoverEnterEvent
(và hoverLeaveEvent
):QGraphicsItem không nhận các sự kiện chuột di chuột
void MyGraphicsItem::hoverEnterEvent(QGraphicsSceneHoverEvent* event)
{
update (boundingRect());
}
Tuy nhiên, điều này đang xử lý sự kiện không bao giờ được thực thi. Tôi đã bật theo dõi chuột rõ ràng:
MyGraphicsView::MyGraphicsView(MainView *parent) :
QGraphicsView(parent)
{
setMouseTracking(true);
viewport()->setMouseTracking(true);
...
}
Vẫn không may mắn. Tôi đang làm gì sai?
Tôi đã gặp sự cố tương tự này và việc xóa triển khai 'mouseMoveEvent' khỏi' QGraphicsView' cũng cần thiết để khắc phục sự cố. Bây giờ tôi có nó làm việc tôi có thể có thể thêm 'mouseMoveEvent' trở lại miễn là tôi tìm ra một cách để nó không ăn lên' QEvent'. –
Cảm ơn bạn rất nhiều! Bạn vừa kết thúc nỗi đau khổ lớn –
@CoryKlein bạn đã tìm cách sử dụng cả hai sự kiện mouseMoveEvent và di chuột? – lena