环境:Qt Creator5.5.1
Qt窗口设置的时候经常会用到setWindowFlags(Qt::WindowFlags type)函数。通过这个函数可以设置一个或多个窗口标志类型。可以指定窗口类型、窗口外观、自定义窗口控件。下面这三个表格中的参数是都可以使用的,如果想设置多个属性,可以通过参数或的形式实现。常用的类型我用粗体标注出来了。
参数类型:
下面这些枚举类型用于为小部件指定各种
窗口系统属性
。
参数
|
描述
|
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::ToolTip
|
表明小部件是一个工具提示。这在内部用于实现工具提示。
|
Qt::SplashScreen
|
表示该窗口为启动页面。这是QSplashScreen部件的默认类型。
|
Qt::Desktop
|
表明此小部件为桌面组件。这是QDesktopWidget的类型。
|
Qt::SubWindow
|
表明此小部件是一个子窗口,例如QMdiSubWindow小部件。
|
Qt::ForeignWindow
|
表示此窗口对象是一个句柄,表示由另一个进程或使用本机代码手动创建的本机平台窗口。
|
Qt::CoverWindow
|
表明窗口代表一个覆盖窗口,可以保证任务栏不会显示两个进程。
|
如果小部件的类型是Qt:: widget或Qt::SubWindow,通过设置变成了一个窗口(Qt:: window, Qt::Dialog等),那么它的起始位置将会是桌面位置(0,0)的地方。如果小部件是一个窗口(Qt:: window, Qt::Dialog等),通过设置变成了Qt:: widget或Qt::SubWindow,那么它的位置将会是相对于其父小部件的位置(0,0)的地方。
当更改窗口的标志时,此函数调用setParent(),会导致小部件被隐藏。必须调用show()使小部件再次可见。
下面这些枚举类型用于为小部件指定
窗口的外观
。这些对其他窗口没有影响。
参数
|
描述
|
Qt::MSWindowsFixedSizeDialogHint
|
在Windows上给窗口一个薄的对话框边框。这种风格通常用于固定大小的对话框。
|
Qt::MSWindowsOwnDC
|
在Windows上为窗口提供自己的显示上下文。
|
Qt::BypassWindowManagerHint
|
这个标志可以用来告诉平台插件“所有”窗口管理器协议应该被禁用。根据应用程序运行的操作系统和运行的窗口管理器,该标志的行为会有所不同。这个标志可以用来获得一个没有配置设置的本机窗口。
|
Qt::X11BypassWindowManagerHint
|
完全绕过窗口管理器。这将导致一个完全不受管理的无边界窗口(即,除非你手动调用QWidget::activateWindow(),否则没有键盘输入)。
|
Qt::FramelessWindowHint
|
生成一个
无边框
的窗口。用户不能通过窗口系统移动或调整无边界窗口的大小。在X11上,该标志的结果取决于窗口管理器及其理解Motif和/或NETWM提示的能力。大多数现有的窗口管理器都可以处理这个问题。
|
Qt::NoDropShadowWindowHint
|
在支持平台上禁用窗口投影。
|
下面这些枚举类型用于为小部件指定
窗口控件
。
这个标志必须被设置以允许WindowTitleHint, WindowSystemMenuHint, WindowMinimizeButtonHint, WindowMaximizeButtonHint和WindowCloseButtonHint标志。
参数
|
描述
|
Qt::CustomizeWindowHint
|
关闭默认窗口标题提示。
|
Qt::WindowTitleHint
|
给窗口一个标题栏。
|
Qt::WindowSystemMenuHint
|
添加一个窗口系统菜单。
|
Qt::WindowMinimizeButtonHint
|
添加一个最小化按钮。
|
Qt::WindowMaximizeButtonHint
|
添加一个最大化按钮。
|
Qt::WindowMinMaxButtonsHint
|
添加一个最小化和一个最大化按钮。
|
Qt::WindowCloseButtonHint
|
添加一个关闭按钮。
|
Qt::WindowContextHelpButtonHint
|
在对话框中添加上下文帮助按钮。
|
Qt::MacWindowToolBarButtonHint
|
在OS X(苹果操作系统)上增加了一个工具栏按钮(即,在有工具栏的窗口的右上角的长方形按钮)。
|
Qt::WindowFullscreenButtonHint
|
在OS X(苹果操作系统)上增加了一个全屏按钮。
|
Qt::BypassGraphicsProxyWidget
|
如果你想让你的widget始终是桌面的顶级widget,你可以设置这个标志,不管父widget是否嵌入到场景中。
|
Qt::WindowShadeButtonHint
|
如果底层窗口管理器支持最小化按钮,则添加一个阴影按钮来代替它。
|
Qt::WindowStaysOnTopHint
|
通知窗口系统,该窗口应该保持在所有其他窗口的顶部。
|
Qt::WindowStaysOnBottomHint
|
通知窗口系统,窗口应该保持在所有其他窗口的底部。
|
Qt::WindowOkButtonHint
|
在对话框的窗口装饰中添加一个OK按钮。仅支持Windows CE。
|
Qt::WindowCancelButtonHint
|
将“取消”按钮添加到对话框的窗口装饰中。仅支持Windows CE。
|
Qt::WindowTransparentForInput
|
通知窗口系统此窗口仅用于输出(显示某些内容)而不接受输入。
|
Qt::WindowOverridesSystemGestures
|
通知窗口系统,该窗口实现了自己的一组手势,并且应该禁用系统级的手势,例如三指桌面切换。
|
Qt::WindowDoesNotAcceptFocus
|
通知窗口系统此窗口不应接收输入焦点。
|
Qt::MaximizeUsingFullscreenGeometryHint
|
通知窗口系统,当最大化窗口时,它应该尽可能多地使用可用的屏幕几何图形,包括可能被系统UI覆盖的区域,如状态栏或应用程序启动器。
|
Qt::WindowType_Mask
|
用于提取窗口标志的窗口类型部分的掩码。
|