需求
需要在 QDialog
关闭的时候,自动释放掉资源。
解决
默认情况下, QDialog
占用的内存会在 MainWindow
关闭后释放,如果想要在 QDialog
本身关闭的时候就释放,需要通过 setAttribute
方法配置
Qt::WA_DeleteOnClose
选项.
CurrentGetConfigForm * current_get_config_form = nullptr;
void MainWindow::on_pushButton_current_get_config_clicked()
{
if (!GetConfig())
return;
if (current_get_config_form == nullptr)
current_get_config_form = new CurrentGetConfigForm(nullptr, port_, version_, address_);
current_get_config_form->setAttribute(Qt::WA_ShowModal, true);
current_get_config_form->setAttribute(Qt::WA_DeleteOnClose, true);
current_get_config_form->show();
//QEventLoop loop;
//loop.exec();
qDebug() << "MainWindow::on_pushButton_current_get_config_clicked() end" << Qt::endl;
current_get_config_form = nullptr;
}