2010-10-01 2 views
0

У меня есть приложение, где QGraphicsPolygonItem (Objecta) имеет следующие характеристики:Проблемы с позиционированием копии QGraphicsPolygonItem в QGraphicsScene

ScenePos: Х = 250 Y = 125

Transform():

|----|---|---| 
| 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); 

Проблема в том, что объект B перемещается на 50 единиц от ObjectA по оси X.

Любая идея, почему?

+0

У вас есть setScenePos(), вы имеете в виду setPos()? –

ответ

0

Это происходит потому, что scenePos() восстанавливает абсолютное положение объекта в сцене, не принимая во внимание его матрицу преобразования. Он работает с использованием pos().

Carlos.