2012-07-22 64 views
0

我試圖測試QGraphicsView和QGraphicsScene。我創建了一個繼承QGraphicsItem的類,Brick。 Brick類將在調用構造函數時繪製指定的座標。現在我正在試圖用磚塊填充程序的第一行。 Brick精靈是32x32。Qt GraphicsScene繪圖項目

磚類的構造函數:

Brick::Brick(int x, int y) 
{ 
pixmap = new QPixmap("brickblock.jpeg"); 

setPos(x, y); 
} 

窗口的構造函數:

for(int i = 0; i <= 768; i+=32){ // 24 bricks 
    Brick *abrick = new Brick(i, 0); // x = i; y = 0; 
    scene->addItem(abrick);} 

的問題是,該程序在屏幕的中間位置繪製這些磚,而不是在第一行。 GraphicsView佔據整個屏幕。

回答

3

嘗試使用:

scene->setSceneRect(0, 0, 768, 768); 

總之,這將告訴場景和認爲,左上座標爲(0,0),並且場景是寬768個單位768個單位高。否則,場景和視圖會將(0,0)視爲中間座標。

+0

謝謝,它的工作。 – Kanghu 2012-07-22 02:17:34