更改 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);
设置场景矩形
在添加我的项目解决问题之前,
我有 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);
设置场景矩形
在添加我的项目解决问题之前,