2012-12-16 3 views
0

mainWindow의 생성자 안에 모든 코드가 있습니다. 문제는 디스플레이가 1 초 이상 팝업 만 표시된다는 것입니다. 어떤 도움을 많이 주시면 감사하겠습니다. 다음은 코드입니다.QGraphicScene 팝업이 1 초 동안 사라졌습니다.

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