Qt::WindowFlags详解

  • A+
所属分类:Qt专栏 Qt系列教程

Qt::WindowFlags详解

Qt::WindowFlags

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

  1. Qt::Widget:这是QWidget的默认类型。如果它们有父级,这种类型的部件是子部件,如果没有父控件,则为独立窗口。另请参见Qt :: Window和Qt :: SubWindow。
  2. Qt::Window:表示小部件是一个窗口,无论窗口小部件是否具有父控件,通常具有窗口系统框架和标题栏。 请注意,如果部件没有父控件,则无法取消设置此标记(即如果存在父控件,则可以取消此标记,否则,必须存在此标记用以标识此控件是个独立窗口)。
  3. Qt::Dialog:指示部件是应该作为对话框窗口(即标题栏中通常没有最大化或最小化按钮)。这是QDialog的默认类型。如果要将其用作模态对话框,则应从另一个窗口启动它,或者如果有父窗口,则与QWidget::windowModality属性一起使用。如果将其设置为模态,则对话框将阻止应用程序中的其他顶级窗口获取任何输入。我们将具有父级的顶级窗口称为辅助窗口。
  4. Qt::Sheet:表示该窗口是Macintosh工作表。 由于使用工作表意味着窗口模态,推荐的方法是使用QWidget :: setWindowModality()或QDialog :: open()。
  5. Qt::Drawer:表示该窗口小部件是Macintosh抽屉。
  6. Qt::Popup:表示窗口小部件是弹出式顶级窗口,即它是模态的,但具有适合弹出菜单的窗口系统框架。
  7. Qt::Tool:表示窗口小部件是工具窗口。工具窗口通常是一个小窗口,其标题栏和装饰比通常小,通常用于工具按钮的集合。 如果有父部件,则工具窗口将始终保持在其上。 如果没有父部件,您可以考虑使用Qt :: WindowStaysOnTopHint使其位于最顶端。 如果窗口系统支持它,工具窗口可以用更轻的框架装饰。它也可以与Qt :: FramelessWindowHint结合使用。 在macOS上,工具窗口对应浮动类窗口。 这意味着窗口存在于正常窗口之上; 不可能在它上面放一个普通的窗口。 默认情况下,当应用程序处于非活动状态时,工具窗口将消失。 这可以通过Qt :: WA_MacAlwaysShowToolWindow属性来控制。
  8. Qt::ToolTip:表示窗口小部件是工具提示。 这在内部用于实现工具提示,没有标题栏和窗口边框。
  9. Qt::SplashScreen:表示该窗口是闪屏。 这是QSplashScreen的默认类型。
  10. Qt::Desktop:表示此小组件是桌面。 这是QDesktopWidget的类型。
  11. Qt::SubWindow:表示此窗口小部件是子窗口,例如QMdiSubWindow窗口小部件。
  12. Qt::ForeignWindow:指示此窗口对象是表示由另一个进程创建的本机平台窗口或手动使用本机代码的句柄。
  13. Qt::CoverWindow:表示该窗口代表一个封面窗口,例如,当应用程序在BlackBerry平台上最小化时显示。

还有许多标志可用于自定义顶级窗口的外观。 这些对其他窗口没有影响:

  1. Qt::MSWindowsFixedSizeDialogHint:在Windows上为窗口提供精简的对话框边框。 此样式传统上用于固定大小的对话框。
  2. Qt::MSWindowsOwnDC:在Windows上为窗口提供自己的显示上下文。
  3. Qt::BypassWindowManagerHint:此标志可用于向平台插件指示应禁用“所有”窗口管理器协议。 此标志的行为会有所不同,具体取决于运行应用程序的操作系统以及正在运行的窗口管理器。 该标志可用于获取没有配置集的本机窗口。
  4. Qt::X11BypassWindowManagerHint:完全绕过窗口管理器。 这导致无边界窗口根本不受管理(即,除非您手动调用QWidget :: activateWindow(),否则没有键盘输入)。
  5. Qt::FramelessWindowHint:生成无边框窗口。 用户无法通过窗口系统移动或调整无边框窗口的大小。 在X11上,标志的结果取决于窗口管理器及其理解Motif和/或NETWM提示的能力。 大多数现有的窗口管理器都可以处理。
  6. Qt::NoDropShadowWindowHint:在支持平台上禁用窗口投影。
Qt大课堂-QtShare

发表评论

您必须登录才能发表评论!