2016-11-10 2 views
0

나는 QGraphicsItem에서 파생 된 클래스가 있습니다. 내가보기에이 코드 _vertexes에 포인트QGraphics boundingRect 변경 후 항목 위치

prepareGeometryChange(); 
_vertexes.pop_back(); 

위치를 점을 추가 할 때

for(int i = 0; i < _vertexes.size(); i++) 
{ 
    ... 
    painter->drawEllipse(_vertexes[i], POINT_RADIUS, POINT_RADIUS); 
} 

변화, boundingRect 계산 _vertexes

을 사용 : 그것은 점의 벡터 I 페인트 그려 느릅 나무 포함

포인트 포지션을 저장하는 방법은 무엇입니까? 새로운 boundingRect이 더 큰 경우 새로운 포인트를 추가 한 후에 모든 포인트가 위치를 변경하는 것을 원하지 않습니다. pos()은 항상 같은 위치 (0, 0)를 반환하지만 화면의 다른 위치에있을 수 있습니다.

+1

실제로 위치를 변경하는 항목이 아니라 바운딩 괄호가 변경되면 'QGraphicsView'내에서 'QGraphicsView'가 스크롤되는 것처럼 들립니다. 장면을 rect ['명시 적으로] 설정하십시오 (http://doc.qt.io/qt-5/qgraphicsview.html#sceneRect-prop). –

+0

감사합니다. sceneRect를 설정하면 문제를 해결하는 데 도움이됩니다. –

답변

1

나는 초기 sceneRect를 설정하지 않으므로, 증가하는 장면 항목 경계 사각형을 각각 다시 계산 한 후 다시 계산되고 스크롤됩니다. 으로 항목을 추가하면 문제가 해결됩니다.