Qt弹出的窗口始终位于界面最前面的方法

一、描述

自定义窗口控件标志用于启用自定义窗口控件。调用setWindowFlags(type)函数。

type参数:

Qt::CustomizeWindowHint  关闭默认窗口标题提示。
Qt::WindowTitleHint    给窗口一个标题栏
Qt::WindowSystemMenuHint 添加窗口系统菜单,并可能添加关闭按钮
Qt::WindowMinimizeButtonHint 添加最小化按钮
Qt::WindowMaximizeButtonHint 添加最大化按钮
Qt::WindowMinMaxButtonsHint 添加最大化最小化按钮
Qt::WindowCloseButtonHint 添加关闭按钮
Qt::WindowContextHelpButtonHint  向对话框添加上下文帮助按钮
Qt::MacWindowToolBarButtonHint  在MacOS上添加工具栏按钮
Qt::WindowFullscreenButtonHint 在MacOS上添加全屏按钮
Qt::BypassGraphicsProxyWidget  如果父窗口小部件已经嵌入,则阻止窗口及其子窗口自动嵌入到QGraphicsProxyWidget中。如果希望小部件始终是桌面上的顶级小部件,则可以设置此标志,而不管父小部件是否嵌入到场景中。
Qt::WindowShadeButtonHint  如果基础窗口管理器支持,则在“最小化”按钮的位置添加一个阴影按钮。
Qt::WindowStaysOnTopHint  通知窗口系统窗口应位于所有其他窗口的顶部。
Qt::WindowStaysOnBottomHint  通知窗口系统窗口应位于所有其他窗口的底部。
Qt::WindowTransparentForInput  通知窗口系统此窗口仅用于输出(显示某些内容),不接受输入
Qt::WindowOverridesSystemGestures  通知窗口系统此窗口实现自己的一组手势,并且应禁用系统级手势,例如三指桌面切换。
Qt::WindowDoesNotAcceptFocus 通知窗口系统此窗口不应接收输入焦点。
Qt::MaximizeUsingFullscreenGeometryHint  通知窗口系统,在最大化窗口时,应尽可能多地使用可用的屏幕几何图形,包括系统用户界面可能覆盖的区域,如状态栏或应用程序启动程序
Qt::WindowType_Mask  用于提取窗口标志的窗口类型部分的掩码

二、方法

要使新建的窗口始终位于当前屏幕的最前面,需要在创建窗口的时候设置自定义窗口属性为:WindowStaysOnTopHint

代码如下:

    QMessageBox *msgBox;
    msgBox = new QMessageBox(title,text,QMessageBox::Question,QMessageBox::Ok | QMessageBox::Default,NULL,0);
    msgBox->setWindowFlags(Qt::WindowStaysOnTopHint);
    msgBox->show();

 

你可能感兴趣的:(QtCreator,setWindowFlags,Qt)