-1

在 qgraphicsScene 中,我们添加了 2 个 rectItem。

在此处输入图像描述

假设首先添加红色矩形,它的左上角坐标是 (x1, y1) wrt 到 qgraphicsscene。现在在场景中添加了第二个蓝色矩形,它与红色矩形重叠。

现在我怎样才能得到红色矩形的坐标到蓝色矩形的坐标系。

没有在 rectItems 上进行父级,它只在场景中添加了 2 个 rectItems。也尝试了 mapRectFromScene 等,但没有得到结果。

4

2 回答 2

0

您可以使用 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() 是你想要的。

于 2018-05-14T15:46:54.983 回答
0

我搞定了,

x = (red.x - blue.x)

y = (red.y - blue.y)

于 2018-05-16T08:51:43.237 回答