Координаты для rectItem по отношению к другим rectItem в qgraphicsScene - PullRequest
0 голосов
/ 14 мая 2018

В qgraphicsScene у нас добавлено 2 объекта rectItems.

enter image description here

Скажем, красный прямоугольник добавляется первым, и его верхние координаты равны (x1, y1) по отношению к сцене.Теперь в сцену добавлен второй синий прямоугольник, который перекрывает красный прямоугольник.

Теперь, как я могу получить координаты красного прямоугольника относительно системы координат синего прямоугольника.

Для rectItems не выполняется родительское воспитание, в сцену добавляются только 2 rectItems.пробовал mapRectFromScene и другие также, но не получил результатов.

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Я сделал это,

x = (red.x - blue.x)

y = (red.y - blue.y)

0 голосов
/ 14 мая 2018

Вы можете использовать объект QTransform для вычисления координат красного прямоугольника по синему следующим образом:

QRect red, blue; // somewhere in your code...

QTransform t;
t.translate(blue.x(), blue.y()); // move the origin to blue's top left corner
QRect redWRTBlue = t.mapRect(red); // get a copy of red wrt blue's position

redWRTBlue.x () и redWRT.y () - это то, что вам нужно.

...