C++ QGraphicsItem::mapFromItem()是否考虑转换?
我想把一个项目(前景)放在另一个项目(背景)的上方,背景的某个坐标(x,y)。背景是 变换后的图像与前景和背景没有父子关系 因此,我要:C++ QGraphicsItem::mapFromItem()是否考虑转换?,c++,qt,qgraphicsitem,qgraphicsscene,C++,Qt,Qgraphicsitem,Qgraphicsscene,我想把一个项目(前景)放在另一个项目(背景)的上方,背景的某个坐标(x,y)。背景是 变换后的图像与前景和背景没有父子关系 因此,我要: foreground->setPos(foreground->mapToParent( foreground->mapFromScene(background->mapToScene(x, y)))) 首先确定背景变换后背景坐标在场景中的位置,然后将此坐标从场景映射到前景项的父坐标系,以进行setPos()调用 然而,
foreground->setPos(foreground->mapToParent(
foreground->mapFromScene(background->mapToScene(x, y))))
首先确定背景变换后背景坐标在场景中的位置,然后将此坐标从场景映射到前景项的父坐标系,以进行setPos()
调用
然而,这似乎相当于(至少在我的情况下):
mapFromItem(item)
是否考虑了应用于item
的任何转换?或者等效性只是我整体情况的一个产物?如果您定义前景是背景的父对象,那么如果前景的位置发生变化,Qt将自动转换背景
background->setParent(foreground);
background->setPos(20,20); // cooridinate system origin is pos() of foreground.
foreground->setPos(10,10); // background moves also
background->setParent(foreground);
background->setPos(20,20); // cooridinate system origin is pos() of foreground.
foreground->setPos(10,10); // background moves also