Qgraphicsscene绘图项目

时间:2012-07-22 01:09:50

标签: c++ qt sprite

我正在尝试测试QGraphicsView和QGraphicsScene。我创建了一个继承QGraphicsItem的类Brick。 Brick类将在调用构造函数时绘制一个砖块。现在我正在尝试用砖块填充程序的第一行。 Brick精灵是32x32。

Brick类构造函数:

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

setPos(x, y);
}

Window的构造函数:

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

问题是程序在屏幕中间某处绘制这些砖块,而不是在第一行。 GraphicsView占据整个屏幕。

1 个答案:

答案 0 :(得分:3)

尝试使用:

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

简而言之,这将告诉场景和视图左上角坐标是(0,0),并且场景是768个单位宽,768个单位高。否则,场景和视图会将(0,0)视为中间坐标。