Qt 设置窗口属性setWindowFlags函数

Qt 设置窗口属性setWindowFlags函数

在WindowFlags 中常用的函数有以下几种:

Qt::WindowNoState     //窗口 正常显示
Qt::WindowMinimized   //窗口 最小显示
Qt::WindowMaximized   //窗口 最大显示
Qt::WindowFullScreen  //窗口 填充整个屏幕,无边框
Qt::WindowActive      //窗口 变为活动的窗口(如:可接受键盘输入)
  • 枚举类型 Qt::WindowFlags低位的一个字节用于定义窗口部件的窗口类型。0x00000000~0x00000012共定义了11个窗口类型。Qt:WindowFlags的高位字节定义了窗口提示,窗口提示能够进行位或操作,例如:
Qt::WindowContextHelpButtonHint | Qt::WindowMaximizeButtonHint

-当Qt::WindowFlags的窗口提示部分全为0时,窗口提示不起作用。当有一个窗口提示被应用时,若要其他的窗口提示起作用,则必须使用位或操作(如果窗口系统支持这些窗口提示的话)。例如

Qt::WindowFlags flags = Qt::Window;
widget->setWindowFlags(flags);
  • widget 窗口部件是一个窗口,它有一般窗口的外观(有窗口边框,标题栏,“最小化”按钮,“最大化”按钮和“关闭”按钮等),此时窗口提示不起作用。例如:
flags |= Qt::WindowTitleHint;
widget->setWindowFlags(flags);

上述代码的执行,将会使窗口提示发挥作用。X11窗口管理器忽略了窗口提示Qt::WindowTitleHint,例如在红旗Linux5.0工作站和SuSE10.2系统上,上述代码并不起作用。

函数 含义
Qt::Widget QWidget构造函数的默认值,如果新的窗口部件没有父窗口部件,则它是一个独立的窗口,否则就是一个子窗口部件。
Qt::Window 无论是否有父窗口部件,新窗口部件都是一个窗口,通常有一个窗口边框和一个标题栏。
Qt::Dialog 新窗口部件是一个对话框,它是QDialog构造函数的默认值。
Qt::Sheet 新窗口部件是一个Macintosh表单(sheet)。
Qt::Drawer 新窗口部件是一个Macintosh抽屉(drawer)。
Qt::Popup 新窗口部件是一个弹出式顶层窗口。
Qt::Tool 新窗口部件是一个工具(tool)窗口,它通常是一个用于显示工具按钮的小窗口。如果一个工具窗口有父窗口部件,则它将显示在父窗口的部件上面,否则相当于使用了Qt::WindowStaysOnTopHint提示。
Qt::ToolTip 新窗口部件是一个提示窗口,没有标题栏和窗口边框。
Qt::Desktop: 新窗口部件是桌面,它是QDesktopWidget构造函数的默认值。
Qt::SplashScreen 新窗口部件是一个欢迎窗口,它是SplashScreen构造函数的默认值。
Qt::SubWindow 新窗口部件是一个子窗口,而无论窗口部件是否有父窗口部件。此外,Qt还定义了一些控制窗口外观的窗口提示(这些窗口提示仅对顶层窗口有效)。
Qt::MSWindowFiredSizeDialogHint 为Windows系统上的窗口装饰一个窄的对话框边框,通常这个提示用于固定大小的对话框。
Qt::MSWindowOwnDC 为Windows系统上的窗口添加自身的显示上下文菜单。
Qt::X11BypassWindowManagerHint 完全忽视窗口管理器,它的作用是产生一个根本不被管理的无窗口边框的窗口(此时,用户无法使用键盘进行输入,除非手动调用QWidget::activateWindow()函数)。
Qt::FramelessWindowHint 产生一个无窗口边框的窗口,此时用户无法移动该窗口和改变它的大小。
Qt::CustomizeWindowHint 关闭默认的窗口标题提示。
Qt::WindowTitleHint 为窗口装饰一个标题栏。
Qt::WindowSystemMenuHint 为窗口添加一个窗口系统系统菜单,并尽可能地添加一个关闭按钮。
Qt::WindowMinimizeButtonHint 为窗口添加一个“最小化”按钮。
Qt::WindowMaximizeButtonHint 为窗口添加一个“最大化”按钮。
Qt::WindowMinMaxButtonHint: 为窗口添加一个“最小化”按钮 和一个“最大化”按钮。
Qt::WindowContextHelpButtonHint 为窗口添加一个“上下文帮助”按钮。
Qt::WindowStaysOnTopHint 告知窗口系统,该窗口应该停留在所有其他窗口的上面。
Qt::WindowType_Mask 一个用于提示窗口标识的窗口类型部分的掩码。

16进制编码

枚举类型(WindowType ) 编码值
Widget 0x00000000
Window 0x00000001
Dialog 0x00000002 & Window
Sheet 0x00000004 & Window
Drawer 0x00000006 & Window
Popup 0x00000008 & Window
Tool 0x0000000a & Window
ToolTip 0x0000000c & Window
SplashScreen 0x0000000e & Window
Desktop 0x00000010 & Window
SubWindow 0x00000012
WindowType_Mask 0x000000ff
MSWindowsFixedSizeDialogHint 0x00000100
MSWindowsOwnDC 0x00000200
X11BypassWindowManagerHint 0x00000400
FramelessWindowHint 0x00000800
WindowTitleHint 0x00001000
WindowSystemMenuHint 0x00002000
WindowMinimizeButtonHint 0x00004000
WindowMaximizeButtonHint 0x00008000
WindowMinMaxButtonsHint WindowMinimizeButtonHint & WindowMaximizeButtonHint
WindowContextHelpButtonHint 0x00010000
WindowShadeButtonHint 0x00020000
WindowStaysOnTopHint 0x00040000
CustomizeWindowHint 0x02000000
WindowStaysOnBottomHint 0x04000000
WindowCloseButtonHint 0x08000000
MacWindowToolBarButtonHint 0x10000000
BypassGraphicsProxyWidget 0x20000000
WindowOkButtonHint 0x00080000
WindowCancelButtonHint 0x00100000
WindowSoftkeysVisibleHint 0x40000000
WindowSoftkeysRespondHint 0x80000000
其他:
reserved for Qt3Support:
WMouseNoMask | 0x00080000,
WDestructiveClose | 0x00100000,
WStaticContents | 0x00200000,
WGroupLeader | 0x00400000,
WShowModal | 0x00800000,
WNoMousePropagation | 0x01000000

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