Название: Qt 4.3.0 - Глюки с координатами объекта на сцене Отправлено: mal от Октябрь 17, 2007, 12:28 Всем привет!
Такая фигня: создаю сцену кладу на вЪю. Размер сцены задаю меньше размера вЪю Далее создаю объект QGraphicsEllipseItem и кладу его на сцену. Но я кладу его во въю вне сцены. Код такой: el_item = new QGraphicsEllipseItem(); scene->addItem(el_item); el_item->setRect(40,40,20,20); ... тут задаю размеры айтема, кисти перья и проч. ... претположим я его кладу в предопределенную точку на въю. Для этого делаю преобразование от координат въю к координатам сцены: ... QPointF ptf = view->mapToScene( QPoint(45, 45 )); el_item->setPos(ptf); QPointF pt_1 = el_item->pos(); QPointF pt_2 = el_item->scenePos(); ... При этом и pt_1 и pt_2 имеют одинаковые координаты (-173, -100) Сразу делаю следующее : QRectF rectF = el_item->sceneBoundingRect(); и вот тут то получаю парадокс - координаты rectF такие: rectF={x=-133.0(0), y=-60.0(0), w=20.0(0), h=20.0(0)} т.е. Описывающий прямоугольник айтема в координатах сцены и позиция айтема в координатах сцены имеют РАЗНЫЕ значения! Ни с айтемом, ни со сценой в этот момент ничего не происходит. Т.е. создал, сунул на сцену, проверил коодинаты, проверил координаты описывающего прямоугольника в координатах сцены. Как с этим бороться? Название: Re: Qt 4.3.0 - Глюки с координатами объекта на сцене Отправлено: mal от Октябрь 18, 2007, 07:50 Как водится - отвечаю сам, ибо уже разобрался. ;-)
При инициализации нужно задать rect(0,0, width,height). Тогда никакого реального смещения айтема от его заданной позиции на сцене не происходит. |