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

时间:2017-01-24 13:03:49

标签: c++ qt qgraphicsitem qgraphicsscene

我想将一个项目(前景)放在另一个项目(背景)上方的背景的某个坐标(x,y)上。背景是 转化,前景和背景没有亲子关系。

我会这样做:

foreground->setPos(foreground->mapToParent(
        foreground->mapFromScene(background->mapToScene(x, y))))

首先确定变换背景后背景坐标在场景中的位置,然后将此坐标从场景映射到前景项的父坐标系,以进行setPos()调用。

然而,这似乎与(至少在我的情况下)相同:

foreground->setPos(foreground->mapToParent(
        foreground->mapFromItem(background, (x, y))))

mapFromItem(item)是否考虑了应用于item的任何转化?或者等价只是我整体情况的一个神器?

1 个答案:

答案 0 :(得分:0)

如果您定义前景是背景的父级,如果前景的位置发生变化,Qt将自动翻译背景。

background->setParent(foreground);
background->setPos(20,20); // cooridinate system origin is pos() of foreground.
foreground->setPos(10,10); // background moves also