2013-12-12 2 views
3

QGraphicsView에 작은 이미지를 추가 할 때 이미지 픽셀의 좌표를 가져 오는 방법이 있습니까? 사용자 정의 클래스 QGraphicsView에 rubberband를 사용했지만 QGraphicsView 좌표 만 가져올 수 있습니다.QT : QGraphicsScene을 통해 QGraphicsView에 추가 된 이미지의 좌표를 가져와야합니다.

+0

정확히 "이미지 픽셀의 수 좌표"가 무슨 뜻 이죠? 화면 좌표, 원본 이미지와 관련된 이미지의 위치 (픽셀 단위) 또는 다른 것을 원한다는 뜻입니까? – TheDarkKnight

+0

죄송합니다. 이제 제게 생각 나게하겠습니다. 정말 명확하지 않습니다. 사실, 그래픽 뷰 좌표가 아닌 원본 이미지와 관련된 좌표가 필요합니다. –

답변

2

주어진 위치에서 픽셀을 가져오고 싶습니다. 주어진 위치가 마우스 위치에서 오는 것이라고 가정합니다.

말,를 QGraphicsView로부터 상속 된 클래스 :

MyView::MyView(QWidget *parent=0) : QGraphicsView(parent) 
{ 
    setScene(new QGraphicsScene(this)); 
    this->scene()->addPixmap(QPixmap::fromImage(this->image)); // this->image is a QImage 
} 

그런 다음, 구현 마우스 이벤트

void MyView::mouseMoveEvent(QMouseEvent* event) 
{ 
    QPointF pos = mapToScene(event->pos()); 
    QRgb rgb = this->image.pixel((int)pos.x(), (int)pos.y()); 
} 
+0

고맙습니다. 나는 그런 것을 필요로했다. 그것은 작동합니다. 더 많은 것을 요구하지 않으면 rubberband를 이미지 영역에서만 제한 할 수 있습니까? –

관련 문제