更改 boundingRect 后的 QGraphicsItem 位置

QGraphicsItem position after changing boundingRect

我有 class 来自 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() returns 总是相同的位置 (0, 0) 但它可能在屏幕的不同位置。

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