2014-01-27 115 views
1

我有創建的QGraphicsView和DynamicRadarScene(來自QGraphicsScene派生):的QGraphicsView和QGraphicsScene座標Qt中的4.8系統

QGraphicsView* view = new QGraphicsView; 
view->setMinimumSize(800, 600); 
DynamicRadarScene* _scene = new DynamicRadarScene(mode, channel_types, this); 
view->setScene(_scene); 

什麼是座標QGraphicsScene的系統? (0,0)是從左上角開始的? 如何在場景的右上角繪製項目(我已將其設置爲800x600:view-> setMinimumSize(800,600);)? 如果我調整了窗口小部件的大小,所以我調整了QGraphicsView的大小,如何才能移動我之前繪製的項目以保留在左上角?

+0

'我怎麼能把我畫的東西留在左上角?'你的意思是右上角?因爲在你陳述'我如何在場景的右上角畫一個物品'之前。 – thuga

回答

0

是的,左上角通常是圖形場景中(0,0)的座標。你需要考慮的是,QGraphicsView就像是一個看待世界的窗口(QGraphicsScene)。您將視圖設置爲查看某個區域或場景,這可能是場景的全部或部分。

一旦設置了場景和視圖,然後可以通過使用諸如QGraphicsScene :: addItem之類的函數添加QGraphicsItems/QGraphicsObjects或從這些類派生的類的實例。這些物品被放置在場景中並繪製自己。

我(原文如此)調整窗口小部件,所以我調整的QGraphicsView

您可以更改的QGraphicsView位置和尺寸,但隨後在場景中的項目將在場景內保持在同一個地方。通常你會設置場景並查看,然後通過setPos函數移動/調整場景中圖形項目/對象的大小:QGraphicsItem :: setPos()。這設置了項目相對於其父項的位置。如果該項目沒有父項目,它將設置項目在場景中的位置。

0

QGraphicsScene有財產sceneRect。如果沒有設置,則根據場景內容自動調整。這可以給協調的起源在一個陌生的地方,甚至是移動的填充。

設置此屬性。另見this