如何在所有窗口之上显示QMessageBox

时间:2014-05-07 08:41:38

标签: qt dialog qmessagebox

我创建了一个与全屏应用程序一起运行的程序。我希望我的程序中的QMessageBox显示在全屏运行的应用程序之上。

该平台是Windows 7,我正在使用Qt。

我试过了:

QMessageBox *msgBox = new QMessageBox;
msgBox->setParent(0);
msgBox->setWindowTitle(title);
msgBox->setText(text);
msgBox->setWindowFlags(Qt::WindowStaysOnTopHint);
msgBox->show();

没有运气。任何提示?

1 个答案:

答案 0 :(得分:2)

尝试msgBox->raise();会在任务栏中通知用户,使用setWindowFlags(Qt::WindowStaysOnTopHint);最终可以使其保持最佳状态(evtl。最小化/恢复)。 但是窗口管理员,不依赖于操作系统,不应该允许任何应用程序只是“偷”"来自另一个应用程序的焦点,因此用户仍然需要激活(单击)您的窗口以获得焦点。