rectItem 与 qgraphicsScene 中其他 rectItem 的坐标
Co-ordinates for rectItem wrt to other rectItem in qgraphicsScene
在 qgraphicsScene 中,我们添加了 2 个 rectItem。
比方说,首先添加红色矩形,它的左上角坐标是 (x1, y1) wrt 到 qgraphicsscene。现在场景中添加了第二个蓝色矩形,它与红色矩形重叠。
现在我怎样才能得到红色矩形的坐标到蓝色矩形的坐标系。
rectItems 没有父子关系,场景中只添加了 2 个 rectItems。
也尝试了 mapRectFromScene 和其他人,但没有得到结果。
您可以使用 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() 是你想要的。
我完成了,
x = (red.x - blue.x)
y = (red.y - blue.y)
在 qgraphicsScene 中,我们添加了 2 个 rectItem。
比方说,首先添加红色矩形,它的左上角坐标是 (x1, y1) wrt 到 qgraphicsscene。现在场景中添加了第二个蓝色矩形,它与红色矩形重叠。
现在我怎样才能得到红色矩形的坐标到蓝色矩形的坐标系。
rectItems 没有父子关系,场景中只添加了 2 个 rectItems。 也尝试了 mapRectFromScene 和其他人,但没有得到结果。
您可以使用 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() 是你想要的。
我完成了,
x = (red.x - blue.x)
y = (red.y - blue.y)