C++ 如何在我的应用程序级别使对话框窗口始终位于前端

C++ 如何在我的应用程序级别使对话框窗口始终位于前端,c++,qt,qt5,qdialog,always-on-top,C++,Qt,Qt5,Qdialog,Always On Top,如何在应用程序级别使Qt对话框窗口始终位于顶部 我希望使对话框窗口始终位于前端,但请记住,在我的应用程序级别,对话框窗口始终位于前端,即使我单击一个空白位置,我也希望它仅位于应用程序的前端 我曾尝试使用setWindowFlags(Qt::WindowStaysOnTopHint),但这使得对话框窗口在桌面级别始终位于顶部,但我希望它仅在我的应用程序级别位于顶部 我该怎么做呢?您可以通过给对话框一个父对话框来实现这一点。子对话框始终位于其父窗口的顶部。如果无法像我一样将父对话框发送到对话框窗口(

如何在应用程序级别使Qt对话框窗口始终位于顶部

我希望使对话框窗口始终位于前端,但请记住,在我的应用程序级别,对话框窗口始终位于前端,即使我单击一个空白位置,我也希望它仅位于应用程序的前端

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


我该怎么做呢?

您可以通过给对话框一个父对话框来实现这一点。子对话框始终位于其父窗口的顶部。

如果无法像我一样将父对话框发送到对话框窗口(基于代码条件),请使用标志

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);
}

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

尝试将Qt::Dialog或Qt::Window标志设置到对话框中(使用setWindowsFlags方法)@Chernobyl:我在对话框窗口中使用了
setWindowFlags(Qt::Tool)
。然后您应该设置此窗口的父窗口。From doc:表示小部件是一个工具窗口。工具窗口通常是一个小窗口,具有比通常更小的标题栏和装饰,通常用于工具按钮集合。如果有父级,则工具窗口将始终保持在其顶部。如果没有父级,您可以考虑使用Qt::WistWistaysOutoPoT。@切尔诺贝利:您的单词是正确的,设置父级是问题(<代码> + 1 < /代码>为您的注释)。非常感谢。