如何接近并删除无模式qt对话框

Tom*_*Tom 10 qt dialog qt4 modeless

我在类的方法中创建了一个无模式的qdialog:

//Test.cpp

QDialogMaintenance *diag = new QDialogMaintenance(this);
diag->show();
diag->raise();
diag->activateWindow();
Run Code Online (Sandbox Code Playgroud)

我只需单击对话框中的"X"图标即可关闭对话框.如何删除test.cpp中的"diag"实例?

thu*_*uga 23

您可以使用QWidget :: setAttribute并设置Qt::WA_DeleteOnClose属性.

Makes Qt delete this widget when the widget has accepted the close event (see QWidget::closeEvent()).

diag->setAttribute(Qt::WA_DeleteOnClose);
Run Code Online (Sandbox Code Playgroud)