У меня есть класс, полученный от QGraphicsItem
. Он содержит вектор точек которым я рисую в краске:Позиция QGraphicsItem после изменения boundingRect
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), но оно может находиться в другом положении экрана.
Звучит так, как будто QGraphicsScene' прокручивается внутри 'QGraphicsView', когда ограничивающий прямоугольник изменяется, а не элемент, фактически меняющий положение. Попробуйте установить сцену rect ['явно] (http://doc.qt.io/qt-5/qgraphicsview.html#sceneRect-prop). –
Спасибо, настройка sceneRect помогает мне решить проблему –