Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QGraphicsItem::mapFromItem()是否考虑转换?_C++_Qt_Qgraphicsitem_Qgraphicsscene - Fatal编程技术网

C++ QGraphicsItem::mapFromItem()是否考虑转换?

C++ QGraphicsItem::mapFromItem()是否考虑转换?,c++,qt,qgraphicsitem,qgraphicsscene,C++,Qt,Qgraphicsitem,Qgraphicsscene,我想把一个项目(前景)放在另一个项目(背景)的上方,背景的某个坐标(x,y)。背景是 变换后的图像与前景和背景没有父子关系 因此,我要: foreground->setPos(foreground->mapToParent( foreground->mapFromScene(background->mapToScene(x, y)))) 首先确定背景变换后背景坐标在场景中的位置,然后将此坐标从场景映射到前景项的父坐标系,以进行setPos()调用 然而,

我想把一个项目(前景)放在另一个项目(背景)的上方,背景的某个坐标(x,y)。背景是 变换后的图像与前景和背景没有父子关系

因此,我要:

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