2012-12-16 58 views
0

我有我的所有代碼在一個mainWindow的構造函數。問題在於顯示器只彈出一秒鐘而消失。任何幫助都感激不盡 。以下是代碼。QGraphicScene Pop一秒鐘然後消失

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); 


} 

回答

1

您已在棧上創建場景並且未將其分配給成員變量,因此一旦控件離開構造函數,它將被刪除。

+0

所以我創建的所有變量都應該是主窗口類的數據成員。應該是指針,其內存我在構造函數中分配,然後通過其他函數更新我的程序? –

+0

不,只有需要持久保存比構造函數更長的堆棧對象纔在範圍內。我建議你閱讀一本好的C++書,不理解對象的一生會讓生活困難。 – cmannett85

相關問題