【问题标题】:QMessageBox::critical make it stay on topQMessageBox::critical 让它保持在顶部
【发布时间】:2014-05-22 12:20:33
【问题描述】:
我目前正在使用名为QMessageBox::critical() 的静态消息框,我真的需要它来保持在所有窗口的顶部。有人知道如何实现它吗?
只需要QMessageBox 的静态版本。
提前致谢。
【问题讨论】:
标签:
qt
qwidget
qmessagebox
【解决方案1】:
使用静态方法QMessageBox::critical() 这是不可能的。
你必须使用非静态版本,所以你可以修改窗口标志:
QMessageBox dlg(QMessageBox::Critical, tr("YourTitle"), tr("YourErrorMessage"));
dlg.setWindowFlags(dlg.windowFlags() | Qt::WindowStaysOnTopHint);
dlg.exec();
请注意,仍然不能保证窗口管理器确实应用了此设置。 (这就是为什么它被称为 hint)
但是……
在我看来,你不应该那样做——任何应用程序(除了操作系统本身)都不应该认为自己那么重要......
对于您的用户来说,这可能会很烦人,因此只有在您的错误情况下无法或危险地继续使用整个系统时才这样做。