2011-01-21 1 views
0

표준 QGraphicsView 및 QGraphicsScene을 사용하고 있지만 ImagePixmapItem에서 마우스 이벤트를 사용할 수 있도록하기 위해 QGraphicsPixmapItem을 자신의 ImagePixmapItem으로 서브 클래 싱했습니다.사용자 지정 QGraphicsItem을 만들 때 마우스 이벤트를 가로 채기

이러한 이벤트를 캡처하려면 무엇을해야합니까? 다음과 같은 몇 가지 기능을 재정의했습니다.

void ImagePixmapItem::mousePressEvent(QGraphicsSceneMouseEvent *event){ 

     qDebug("hello"); 

    } 

void ImagePixmapItem::wheelEvent (QGraphicsSceneWheelEvent * event){ 
    qDebug("Print this line if catch a wheelEvent");//this is never printing 

} 

그러나 이러한 qDebug 문은 콘솔에 인쇄되지 않습니다. 내 장면이나 그래픽 뷰에 대해 다른 것을 변경해야합니까? ImagePixmapItem의 생성자에서 몇 가지를 추가했습니다.

setAcceptHoverEvents(true); 
setFlag(QGraphicsItem::ItemIsSelectable,true); 

하지만 아무런 성과가 없습니다.

+0

이 항목을 {{QGraphicsScene}}에 어떻게 추가하고 있는지 보여줄 수 있습니까? – Whatang

답변