How close and delete a modeless qt dialog

Tom picture Tom · Dec 10, 2013 · Viewed 13.7k times · Source

i have create a modeless qdialog inside a method of a class:

//Test.cpp

QDialogMaintenance *diag = new QDialogMaintenance(this);
diag->show();
diag->raise();
diag->activateWindow();

I can close the dialog only clicking on the "X" icon in the dialog frame. How can i delete the "diag" instance in the test.cpp?

Answer

thuga picture thuga · Dec 10, 2013

You can use QWidget::setAttribute and set the Qt::WA_DeleteOnClose attribute.

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

diag->setAttribute(Qt::WA_DeleteOnClose);