Qt WindowFlags 详解

void setWindowFlags(Qt::WindowFlags type);

上面是设置窗口类型的常用函数,下面对 Qt::WindowFlags 类型做一个大致的介绍:

enum Qt::windowType

flags  Qt::WindowFlags

此枚举类型用于为窗口小部件指定各种窗口系统属性。它们相当不寻常,但在少数情况下是必要的。 其中一些标志取决于底层窗口管理器是否支持它们。主要类型有:

  • Qt::Widget:这是QWidget的默认类型。如果它们有父级,这种类型的部件是子部件,如果没有父控件,则为独立窗口。

  • Qt::Window:表示小部件是一个窗口,无论窗口小部件是否具有父控件,通常具有窗口系统框架和标题栏。 请注意,如果部件没有父控件,则无法取消设置此标记(可以用在弹出子窗口比父窗口大很多的情况下)。

  • Qt::Dialog:指示部件是应该作为对话框窗口(即标题栏中通常没有最大化或最小化按钮)。这是 QDialog 的默认类型。如果要将其用作模态对话框,则应从另一个窗口启动它,或者如果有父窗口,则与 QWidget::windowModality 属性一起使用。

  • Qt::Sheet:表示该窗口是 Macintosh 工作表。 由于使用工作表意味着窗口模态,推荐的方法是使用 QWidget :: setWindowModality() 或 QDialog :: open()。

  • Qt::Drawer:表示该窗口小部件是 Macintosh 抽屉。

  • Qt::Popup:表示窗口小部件是弹出式顶级窗口,即它是模态的,但具有适合弹出菜单的窗口系统框架。

  • Qt::Tool:表示窗口小部件是工具窗口。工具窗口通常是一个小窗口,其标题栏和装饰比通常小,通常用于工具按钮的集合。 如果有父部件,则工具窗口将始终保持在其上。 如果没有父部件,您可以考虑使用 Qt :: WindowStaysOnTopHint 使其位于最顶端。 默认情况下,当应用程序处于非活动状态时,工具窗口将消失。 这可以通过 Qt :: WA_MacAlwaysShowToolWindow 属性来控制。

  • Qt::ToolTip:表示窗口小部件是工具提示。 这在内部用于实现工具提示,没有标题栏和窗口边框。

  • Qt::SplashScreen:表示该窗口是闪屏。 这是 QSplashScreen 的默认类型。

  • Qt::Desktop:表示此小组件是桌面。 这是 QDesktopWidget 的类型。

  • Qt::SubWindow:表示此窗口小部件是子窗口,例如 QMdiSubWindow 窗口小部件。

  • Qt::ForeignWindow:指示此窗口对象是表示由另一个进程创建的本机平台窗口或手动使用本机代码的句柄。

  • Qt::CoverWindow:表示该窗口代表一个封面窗口,例如,当应用程序在 BlackBerry 平台上最小化时显示。

以及:

Qt::FrameWindowHint: // 没有边框的窗口
Qt::WindowStaysOnTopHint:  // 总在最上面的窗口
Qt::CustomizeWindowHint:  // 自定义窗口标题栏,以下标志必须与这个标志一起使用才有效,否则窗口将有默认的标题栏
Qt::WindowTitleHint  // 显示窗口标题栏
Qt::WindowSystemMenuHint  // 显示系统菜单
Qt::WindowMinimizeButtonHint  // 显示最小化按钮
Qt::WindowMaximizeButtonHint  // 显示最大化按钮
Qt::WindowMinMaxButtonsHint  // 显示最小化按钮和最大化按钮
Qt::WindowCloseButtonHint  // 显示关闭按钮

还有许多标志可用于自定义顶级窗口的外观,感兴趣的朋友可以自己对照 API 看。也可以直接看下面关于 Qt::WindowFlags 的 API 截图。

img

img

img


参考:

Qt中子窗口全屏显示与退出全屏


原文地址:https://www.cnblogs.com/linuxAndMcu/p/13441230.html