QGraphicsView在Qt 5.0中没有显示任何内容

时间:2013-01-20 22:42:30

标签: qt

我是Qt 5.0的新手,我正在尝试在QWidget中使用大小为700x400的名为“missionView”的QGraphicsView来显示一个矩形。但是,在运行应用程序时,图形视图中不会显示任何内容。这是QWidget“MainView”的构造函数,我正在做所有事情

MainView::MainView(QWidget *parent) :
QWidget(parent),
ui(new Ui::MainView)
{
ui->setupUi(this);
QGraphicsScene scene(0, 0, 500, 500);
QGraphicsRectItem* myrect = scene.addRect(QRectF(0,0,15,5),QPen(), QBrush());


ui->missionView->setScene(&scene);

ui->missionView->setVisible(true);
ui->missionView->show();
ui->missionView->update();
printf("QGraphicsScene scene's items: %d\n",scene.items().size());
    for (int i = 0; i < scene.items().size(); i++) {
        printf("%d\n",scene.items().at(i));
    }


}

最后一个print语句确实显示已添加一个项目,但仍未显示任何内容。我尝试过一种类似于this的方法,但这种方法太有用了。任何人都可以解释一下。

1 个答案:

答案 0 :(得分:1)

您正在堆栈上创建场景对象。 因此,场景将在构造函数的末尾立即销毁,因此不会显示任何内容。 在堆上创建场景和/或使其成为类成员,它应该可以工作。