Qt QGraphics场景弹出一秒钟,然后消失

Qt QGraphics场景弹出一秒钟,然后消失,qt,qt4,qgraphicsscene,Qt,Qt4,Qgraphicsscene,我在主窗口的构造函数中有一个完整的代码。问题是显示器只会弹出一秒钟,然后消失。任何帮助都将不胜感激。下面是代码 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { QPixmap kineticPix(":/images/kinetic.png"); QPixmap bgPix(":/images/Time-For-Lunch-2.jpg"); QGraphicsScene scene(-350, -350, 700,

我在主窗口的构造函数中有一个完整的代码。问题是显示器只会弹出一秒钟,然后消失。任何帮助都将不胜感激。下面是代码

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
QPixmap kineticPix(":/images/kinetic.png");
QPixmap bgPix(":/images/Time-For-Lunch-2.jpg");

QGraphicsScene scene(-350, -350, 700, 700);
QGraphicsItem *buttonParent = new QGraphicsRectItem;

Button *ellipseButton = new Button(QPixmap(":/images/ellipse.png"), buttonParent);
Button *figure8Button = new Button(QPixmap(":/images/figure8.png"), buttonParent);
Button *randomButton = new Button(QPixmap(":/images/random.png"), buttonParent);
Button *tiledButton = new Button(QPixmap(":/images/tile.png"), buttonParent);
Button *centeredButton = new Button(QPixmap(":/images/centered.png"), buttonParent);

ellipseButton->setPos(-100, -100);
figure8Button->setPos(100, -100);
randomButton->setPos(0, 0);
tiledButton->setPos(-100, 100);
centeredButton->setPos(100, 100);

scene.addItem(buttonParent);
buttonParent->scale(0.75, 0.75);
buttonParent->setPos(200, 200);
buttonParent->setZValue(65);


}

您已经在堆栈上创建了场景,但没有将其分配给成员变量,因此一旦控件离开构造函数,它就会被删除。

因此,我创建的所有变量都应该是主窗口类的数据成员。应该是指针,我在构造函数中分配了它们的内存,然后通过其他函数对我的程序进行更新?不,只有堆栈对象需要比构造函数在范围内的持久时间更长。我建议你读一本好的C++书籍,不了解对象的一生会让生活变得困难。