我正在使用 exec() 打开一个 QDialog/QMessageBox 来获取用户输入。但在用户从消息框中选择保存或放弃之前,打开它的父窗口将关闭。
发生这种情况时,应用程序崩溃了。
QDialog/QMessageBox 是否可以在关闭父级时关闭。?
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;
}
窗口关闭代码:
if (window != nullptr && window->isVisible())
{
window->close();
}