Сохраняет ли QGraphicsScene или QGraphicsItem координаты сцены?

Я программно перемещаю элементы в моем QGraphicsScene, и они оказываются в неправильных местах. Они попадают в координаты (2x, 2y) вместо (x, y).

Где-то меняю не то. Я работаю как со сценой, так и с отдельными элементами, обращаясь к обоим через указатели.

QGraphicsItem::pos() может дать вам позицию в координатах сцены (у нее нет родителя). QGraphicsScene содержит список всех элементов сцены: QList<QGraphicsItem *> QGraphicsScene::items () const.

Мой вопрос: информация о том, где находится объект на сцене - хранится ли она внутри сцены или внутри объекта?

Спасибо!


person AJO_    schedule 14.11.2012    source источник
comment
Опубликуйте фактический код, который вы использовали для установки позиции элемента. Мы не физики. :)   -  person Stephen Chu    schedule 14.11.2012


Ответы (1)


В элементе, то есть в классе qgraphicsitem pimpl. Откройте qgraphicsitem_p.h и там вы найдете члена QPointF pos.

person nomenas    schedule 14.11.2012
comment
Спасибо, номенас. Я нашел элемент QPointF pos в qgraphicsitem_p.h. Если координаты сцены изменятся ... я думаю, все элементы в сцене должны будут обновить эти значения. - person AJO_; 15.11.2012
comment
В дополнение к этому я обнаружил, что QGraphicsScene основывает свой индекс элемента на QGraphicsItem :: boundingRect () (он фактически виртуальный). Я полагаю, что указатель предметов полезен для поиска предметов. - person AJO_; 16.11.2012