改变boundingRect后的QGraphicsItem位置

时间:2016-11-10 14:35:11

标签: c++ qt qgraphicsview qgraphicsitem

我的课程来自QGraphicsItem。它包含我在绘画中绘制的点矢量:

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

当我使用此代码在_vertexes中添加点

 prepareGeometryChange();
 _vertexes.pop_back();

视图中点的位置正在变化,boundingRect使用_vertexes

计算

如何保存积分位置?如果新boundingRect更大,我不希望在添加新点之后所有点都改变位置。 pos()返回始终是相同的位置(0,0),但它可能位于屏幕的不同位置。

1 个答案:

答案 0 :(得分:1)

我没有设置初始sceneRect,因此在每个增加的场景项目之后重新计算并滚动。通过ui->graphicsView->setSceneRect(x, y, width, heigh);设置场景矩形 在添加我的项目之前解决了问题,