1、this指定主窗口爲父類
void MainWindow::on_pushButton_clicked()
{
Dialog *aa = new Dialog(this);
aa->show();
}
2、重寫主窗口closeEvent事件
mainwindow.h
QVector<Dialog*> m_test;
mainwindow.cpp
QVector<Dialog*> m_test;
void MainWindow::closeEvent(QCloseEvent *event)
{
qDebug() << "close";
foreach(Dialog *cc, m_test)
{
if(cc != nullptr)
{
delete cc;
cc = nullptr;
}
}
}
void MainWindow::on_pushButton_clicked()
{
Dialog *aa = new Dialog();
m_test.append(aa);
aa->show();
}
當子窗口關閉,同時delete子窗口對象,釋放資源可用Qt::WA_DeleteOnClose 屬性
void MainWindow::on_pushButton_clicked()
{
Dialog *aa = new Dialog();
aa->setAttribute(Qt::WA_DeleteOnClose, true);
aa->show();
}