0

我有一个应用程序,其中 QGraphicsPolygonItem (objectA) 具有以下特征:

场景位置:X=250 Y=125

转换():

|----|---|---|
| 2  | 0 | 0 |
| 0  | 1 | 0 |
| 50 | 0 | 1 |
|----|---|---|

现在,我正在创建和新建 QGraphicsPolygonItem (objectB) 并将其 scenepos 和 Transform 设置为与对象 A 相同:

objectB = new QGraphicsPolygonItem();
objectB->setPolygon(objectA->polygon());
objectB->setScenePos(objectA->ScenePos);
objectB->setTransform(objectA->transform);

问题是 objectB 在 X 轴上从 ObjectA 移动了 50 个单位。

知道为什么吗?

4

1 回答 1

0

发生这种情况是因为 scenePos() 检索场景中对象的绝对位置,而不考虑其变换矩阵。它与 pos() 一起使用。

卡洛斯。

于 2010-10-04T12:37:59.680 回答