QMessageBox :: critical让它保持领先

时间:2014-05-22 12:20:33

标签: qt qwidget qmessagebox

我目前正在使用静态调用的QMessageBox::critical()消息框,我真的需要它来保持所有窗口的顶部。有人知道如何实现它吗?

只需要QMessageBox的静态版本。

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用静态方法QMessageBox::critical(),这是不可能的。

您必须使用非静态版本,因此您可以修改窗口标志:

QMessageBox dlg(QMessageBox::Critical, tr("YourTitle"), tr("YourErrorMessage"));
dlg.setWindowFlags(dlg.windowFlags() | Qt::WindowStaysOnTopHint);
dlg.exec();

请注意,仍然无法保证窗口管理器确实应用此设置。 (这就是为什么它被称为提示

<强>可是... 在我看来你不应该这样做 - 没有应用程序(除了操作系统本身)应该认为自己那么重要...... 对于您的用户来说,这可能非常烦人,所以只有在您的错误情况下继续使用整个系统是不可能或危险的。