2013-12-21 7 views
0

나는 QGraphicsScene에서 상속 된 클래스 생성자 코드의 간단한 조각이 :QGraphicsRectItem :: pos() 함수는 예상치 못한 결과를 반환합니까?

여기
setSceneRect(0,0,800,800); 
addRect(sceneRect()); 
QGraphicsRectItem*r1 = addRect(200, 0, 5, 5); 
qDebug()<<r1->pos(); 

나는 POS (200,0)하지만 qDebug() 인쇄 QPointF(0, 0)에서 구형 영역을 추가! 나는 완전히 혼란스러워. 심지어 scenePos은 (0,0)을 반환합니다! 그것은 사실입니까?!

답변

0

rect는 항목의 좌표계 내에서 (200, 0) 위치에 있지만 항목 자체는 부모 좌표계에서 (0,0)에 있습니다.

QGraphicsScene::addRect() documentation 이것을 설명한다 : 항목의 항목 형상이 제공된다

하는 것으로 조정하고, 그 위치가 초기화된다 (0, 0). 예를 들어, QRect (50, 50, 100, 100)가 추가되면 왼쪽 상단 모서리는 항목 좌표계에서 원점을 기준으로 (50, 50)에 있습니다.

QGraphicsRectItem* r1 = addRect(0, 0, 5, 5); 
r1->setPos(200, 0); 
:

또는, 당신은 당신이 예상 0, 0, 5, 5) 얻을, 나중에 항목을 이동 결과에 사각형을 추가 할 수 있습니다