2013-05-09 99 views
3

我試圖讓一個主窗口(QWidget)在單擊按鈕時打開一個新的QWidget,但是當我關閉主窗口時,最近打開的QWidget沒有關。當主窗口關閉時QWidget沒有關閉

的main.cpp

QApplication a(argc, argv); 
MainWindow w; 
w.show(); 
return a.exec(); 

mainwindow.cpp(父)

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 
} 

out.cpp(孩子)

Out::Out(QWidget *parent) : 
    QWidget(parent), 
    ui(new Ui::Out) 
{ 
    ui->setupUi(this); 

} 
+1

你能後的代碼? – kenrogers 2013-05-09 18:28:38

+0

他們是很多線條,我不知道我必須發佈哪個部分。 – 2013-05-09 18:33:05

+0

我建議你儘可能寫一個儘可能小的例子來重現問題,然後發佈。但對於初學者,你的main.cpp是什麼樣的? – kenrogers 2013-05-09 18:35:00

回答

5

我suspe CT您正在尋找Qt::WA_QuitOnClose

使Qt的應用程序退出時與屬性 集中的最後一個部件已經接受的closeEvent()。此行爲可以通過 QApplication :: quitOnLastWindowClosed屬性進行修改。默認情況下,這個 屬性是爲Qt :: Window類型的所有小部件設置的。

在這種情況下,你應該叫:

myWidget->setAttribute(Qt::WA_QuitOnClose, false);