【发布时间】:2018-02-22 17:33:33
【问题描述】:
我有一个包含 QGraphicsItems 层次结构的 QGraphicsScene。 方法 item.scenePos() 返回项目的场景坐标。 我正在寻找类似 setScenePos() 的东西,以便通过给它们场景坐标来改变项目的位置。 我怎样才能做到这一点?
【问题讨论】:
我有一个包含 QGraphicsItems 层次结构的 QGraphicsScene。 方法 item.scenePos() 返回项目的场景坐标。 我正在寻找类似 setScenePos() 的东西,以便通过给它们场景坐标来改变项目的位置。 我怎样才能做到这一点?
【问题讨论】:
正如docs 所说:
QPointF QGraphicsItem::scenePos() const
返回项目在场景坐标中的位置。这相当于调用 mapToScene(0, 0)。
要得到你想要的,你可以做相反的事情
# setScenePos(QPointF point)
point = QPointF(xx, yy)
point_item = item.mapFromScene(point)
item.setPos(point_item)
【讨论】:
point = item.parentItem().mapFromScene(point_from_scene); item.setPos(point);。项目的本地坐标系是它的父项,不是吗。