1、これはメインウィンドウを親クラスとして指定します
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();
}
子ウィンドウを閉じると、子ウィンドウオブジェクトも同時に削除され、Qt :: WA_DeleteOnCloseプロパティを使用してリソースを解放できます。
void MainWindow::on_pushButton_clicked()
{
Dialog *aa = new Dialog();
aa->setAttribute(Qt::WA_DeleteOnClose, true);
aa->show();
}