更改boundingRect后的QGraphicsItem位置

问题描述 投票:0回答:1

我有来自

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),但它可能位于屏幕的不同位置。

c++ qt qgraphicsview qgraphicsitem
1个回答
1
投票

我没有设置初始场景矩形,因此在每个增加边界矩形的场景项后都会重新计算并滚动它。通过

ui->graphicsView->setSceneRect(x, y, width, heigh);
设置场景矩形 在添加我的项目解决问题之前,

© www.soinside.com 2019 - 2024. All rights reserved.