如何在我的应用程序级别始终在前面创建一个对话框窗口

时间:2014-10-11 14:32:07

标签: c++ qt qt5 qdialog always-on-top

如何在我的应用程序级别始终将Qt对话框窗口置于最顶层?

我想在前面创建一个对话框窗口,但总是记在我应用程序级别的前面,即使我点击一个空白的地方,我也希望它只停留在我的应用程序的前面。

我尝试使用setWindowFlags(Qt::WindowStaysOnTopHint),但这会使对话框窗口始终位于桌面级别的顶部,但我希望它仅在我的应用程序级别上显示。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可以通过将对话框设为父级来实现此目的。子对话框始终位于其父窗口的顶部。

答案 1 :(得分:2)

如果您无法将parent发送到dialog_window(基于条件代码),请像我一样使用标志。

Dialog_dlg::Dialog_dlg(QWidget *parent)
    : QDialog(parent), ui(new Ui::Dialog_dlg)
{
    ui->setupUi(this);
    setFixedSize(width(), height()); //for no maximaize
    setWindowFlag(Qt::WindowStaysOnTopHint);
}

我用这个对我很好。查看其他标志,对其进行测试,然后选择。