I am opening a QDialog/QMessageBox using exec() to get user input. But before the user selects Save or Discard from the message box, the parent window from which it was opened is closed.
When this happens the application crashed.
Can the QDialog/QMessageBox be closed when the parent is closed. ?
QMessageBox msgBox;
msgBox.setParent(parent);
msgBox.setWindowTitle("Save Changes");
msgBox.setWindowModality(Qt::ApplicationModal);
msgBox.setText(QString("XXXX have been added to %1.").arg(YYY));
msgBox.setInformativeText("Do you want to save your changes?");
msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard);
msgBox.setDefaultButton(QMessageBox::Save);
msgBox.setIcon(QMessageBox::Question);
int userSelection = msgBox.exec();
switch (userSelection) {
case QMessageBox::Save:
{
onSubmitClicked();
reload();
}
break;
case QMessageBox::Discard:
{
sList.clear();
reload();
}
break;
default:
break;
}
Window closing code :
if (window != nullptr && window->isVisible())
{
window->close();
}