Qt QGRAPHICSCENE中RECTIMENT wrt与其他RECTIMENT的坐标

Qt QGRAPHICSCENE中RECTIMENT wrt与其他RECTIMENT的坐标,qt,qgraphicsview,qgraphicsscene,qgraphicsitem,qgraphicsrectitem,Qt,Qgraphicsview,Qgraphicsscene,Qgraphicsitem,Qgraphicsrectitem,在QGraphicscene中,我们添加了两个项目 比方说,首先添加红色的rect,它的左上角坐标是(x1,y1)wrt到qgraphicscene。现在,场景中添加了第二个蓝色矩形,它与红色矩形重叠 现在我怎样才能得到红色矩形的坐标到蓝色矩形的坐标系 没有对rectItems执行任何父项设置,只在场景中添加了2个rectItems。 也尝试了mapRectFromScene和其他方法,但没有得到结果。您可以使用QTransform对象计算红色矩形坐标wrt和蓝色矩形坐标wrt,如下所示: Q

在QGraphicscene中,我们添加了两个项目

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

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

没有对rectItems执行任何父项设置,只在场景中添加了2个rectItems。
也尝试了mapRectFromScene和其他方法,但没有得到结果。

您可以使用QTransform对象计算红色矩形坐标wrt和蓝色矩形坐标wrt,如下所示:

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=(红色x-蓝色x)

y=(红色。y-蓝色。y)