2012-11-14 22 views
0

我以編程方式移動我的QGraphicsScene中的項目,它們最終放在錯誤的地方。它們以座標(2x,2y)而不是(x,y)結束。QGraphicsScene或QGraphicsItem是否存儲場景座標?

某處我改變了錯誤的東西。 我與場景和單個項目一起工作,通過指針訪問兩者。

QGraphicsItem::pos()可以給你在場景座標(它沒有父)的位置。 QGraphicsScene容納場景內的所有物品的清單: QList<QGraphicsItem *> QGraphicsScene::items() const

我的問題:項目在現場的信息 - 存儲在場景中還是存儲在項目中?

謝謝!

+0

後您用來設置該項目位置的實際代碼。我們不是物理學。 :) –

回答

0

在項目即的QGraphicsItem PIMPL類。打開qgraphicsitem_p.h,在那裏你會找到QPointF pos成員。

+0

謝謝,nomenas。我確實在qgraphicsitem_p.h中找到了QPointF pos成員。如果場景座標發生變化......我想,場景中的所有項目都必須更新這些值。 –

+0

當然可以。所有這些都必須正確更新。 – nomenas

+0

爲了促進這一點,我發現QGraphicsScene將其項目索引基於QGraphicsItem :: boundingRect()(它實際上是虛擬的)。我認爲物品索引對查找物品很有用。 –

相關問題