我目前使用静态称为QMessageBox::critical()
消息框,我真的需要它保持在所有窗口的顶部。有人知道怎么实现它吗?
只需要QMessageBox
的静态版本。
对于静态方法QMessageBox::critical()
,这是不可能的。
您必须使用非静态版本,因此您可以修改窗口标志:
QMessageBox dlg(QMessageBox::Critical, tr("YourTitle"), tr("YourErrorMessage"));
dlg.setWindowFlags(dlg.windowFlags() | Qt::WindowStaysOnTopHint);
dlg.exec();
请注意,仍然不能保证窗口管理器真正应用此设置。(这就是为什么它被称为提示)
但是…在我看来,你不应该这么做——任何应用程序(除了操作系统本身)都不应该认为自己那么重要……对于您的用户来说,这可能很烦人,所以只有在您的错误情况下不可能或危险地继续使用整个系统时才这样做。