qt 메인 창이 닫힐 때 하위 창을 닫습니다

5049 단어 QT
1. this는 주 창을 부모 클래스로 지정합니다
void MainWindow::on_pushButton_clicked()
{
    Dialog *aa = new Dialog(this);
    aa->show();
}

2. 메인 창 close Event 이벤트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::WADeleteOnclose 속성
void MainWindow::on_pushButton_clicked()
{
    Dialog *aa = new Dialog();
    aa->setAttribute(Qt::WA_DeleteOnClose, true);
    aa->show();
}

좋은 웹페이지 즐겨찾기