Qt中的多模态窗口

Multiple modal window in Qt

本文关键字:模态 窗口 Qt      更新时间:2023-10-16

我有以下插槽:

void MainWindow::showCriticalMessage(const QString& title, const QString& message)
{
 QMessageBox msgBox(this);
 msgBox.setIcon(QMessageBox::Critical);
 msgBox.setText(title);
 msgBox.setInformativeText(message);
 msgBox.setStandardButtons(QMessageBox::Ok);
 msgBox.setDefaultButton(QMessageBox::Ok);
 msgBox.exec();
}

如果在用户关闭最后一个弹出消息框之前多次触发此插槽,这会是一个潜在的问题吗?因为我看到很多人说,使用 .show() 而不是 .exec()。

你会得到一堆对话框,这似乎是你想要的。

但是,您还将获得嵌套的exec()调用...每个对话框一个。这是非常讨厌的,但它本身不会造成太大伤害。但是,潜在的损害在很大程度上取决于应用程序的其余部分(请参阅我在评论中发布的链接)。