2013-05-09 144 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);