2014-01-14 65 views
2

我正在編寫一個場景編輯器來編輯iphone遊戲的級別。 iphone/ipad環境中的原點位於顯示屏的左下角。QT QGraphicsScene設置原點左下角

如何正確地移動QGraphicsScene對象內的原點? 我試過

// iWidth and iHeight are maximum scene dimension values 
pScene->setSceneRect(0, iHeight, iWidth, iHeight); 

但這不起作用。

不需要複雜的(至少對我來說)轉換矩陣,我應該如何移動原點?

編輯:

按照要求,這裏是我如何創建現場,將圖像添加到它的簡歷:

// Creation of the Scene within a QMainWindow derived class 
QGraphicsScene* m_pScene = new QGraphicsScene(this); 
ui->levelScene->setScene(m_pScene); 

// insertion of the background png image 
QPixmap* pm = new QPixmap(strFileName, 0); 
QGraphicsPixmapItem* pi = new QGraphicsPixmapItem(); 
pi->setPixmap(*pm); 
m_pScene->addItem(pi); 

// adjustment of the layout 
m_pScene->setSceneRect(0, iHeight, iWidth, iHeight); 

// add a movable png image to the scene above the background 
pm = new QPixmap(*g_pChoData->m_pcDirImages + "/" + pChoElem->m_Image, 0); 
pi = new QGraphicsPixmapItem(); 
pi->setPixmap(*pm); 
pi->setPos(iPosX, iPosY); 
pi->setZValue(iPosZ); 
pi->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable); 
m_pScene->addItem(pi); 
+0

這個答案可能對你有用[如何將QGraphicsScene/QGraphicsView設置爲特定的座標系統](http://stackoverflow.com/a/10444511/2167797)。 – Linville

+0

@林維爾:你應該發佈這個答案! – hmuelner

+0

@林維爾,是的,我已經看過這個,但是當我開始在場景中添加圖像時,它們沒有出現在正確的位置。 – Simon

回答

1

這裏是解決方案,至少在我的情況。

爲了把0,0左下角 -

m_pScene->setSceneRect(0, -iHeight, iWidth, iHeight); 

然後插入到場景中的所有圖像需要有自己的Y位置調整:

pi->setPos(iPosX, -iPosY); 

末小動作引起了我問題是客戶參考點的圖像是圖像的中心,而不是一個角落。

謝謝所有在這裏幫助過的人。

相關問題