打印 windowFlags
print(hex(int(self.windowFlags())))
0x0801 3003
<PyQt5.QtCore.Qt.WindowFlags object at 0x02C81EB0>
self.setWindowFlags(Qt.Tool)
https://www.riverbankcomputing.com/static/Docs/PyQt5/api/qtcore/qt.html#WindowType
https://www.riverbankcomputing.com/static/Docs/PyQt5/api/qtcore/qt-windowflags.html#
BypassGraphicsProxyWidget 0x2000 0000
CustomizeWindowHint 0x0200 0000
Desktop 0x0000 0010 | Window
Dialog 0x0000 0002 | Window
Drawer 0x0000 0006 | Window
FramelessWindowHint 0x0000 0800
MacWindowToolBarButtonHint 0x1000 0000
MSWindowsFixedSizeDialogHint 0x0000 0100
MSWindowsOwnDC 0x0000 0200
Popup 0x0000 0008 | Window
Sheet 0x0000 0004 | Window
SplashScreen 0x0000 000e | Window
SubWindow 0x0000 0012
Tool 0x0000 000a | Window
ToolTip 0x0000 000c | Window
Widget 0x0000 0000
Window 0x0000 0001
WindowCloseButtonHint 0x0800 0000
WindowContextHelpButtonHint 0x0001 0000
WindowMaximizeButtonHint 0x0000 8000
WindowMinimizeButtonHint 0x0000 4000
WindowMinMaxButtonsHint WindowMinimizeButtonHint | WindowMaximizeButtonHint
WindowShadeButtonHint 0x0002 0000
WindowStaysOnBottomHint 0x0400 0000
WindowStaysOnTopHint 0x0004 0000
WindowSystemMenuHint 0x0000 2000 -----2 —b0010
WindowTitleHint 0x0000 1000 -----1 —b0001
WindowType_Mask 0x0000 00ff
X11BypassWindowManagerHint 0x0000 0400
2
转自:https://blog.youkuaiyun.com/bruce_0712/article/details/53506621
在使用Qt设计的时候经常会看到QWidget控件的构造函数出现下面这样一句话:
QWidget(QWidget *parent=0,Qt::WindowFlags f=0)
QWidget *parent=0这段代码容易理解,是指父窗口部件的指定。
Qt::WindowFlags f=0这代码就有一些让人不解了,其实它是指定控件的窗口标识的。值为0即Qt::Widget。
那么就要好好说说控件的窗口标识的设置了。窗口标识由两部分组成分别是窗口类型和窗口提示hint,一个窗口只有一个窗口类型。窗口提示定义了窗口的外观,可以有多个提示,窗口提示进行按位取或即可。
要说清楚Qt::WindowFlags枚举类型就必须清楚两个概念:窗口和部件(这样划分便于区分)
窗口:相对独立的,有子窗口和父窗口之分,主要特点就是窗口有完整的边框。
部件:必须依赖于父窗口而存在,依赖性较强,出现在父窗体的界面内部。
有了上述的概念就好解释Qt::WindowFlags枚举类型的用法了。首先判断一个控件是否是窗体先根据参数parent的指定,要是值为0那么就可以判断其是一个窗口。否则需要根据Qt::WindowFlags枚举类型的值才可以判断其是否为窗口还是部件。
在Qt Assistant里面搜索Qt::WindowFlags就会出现其详细的解释。这边摘下其中部分内容:
Qt::Widget //是一个窗口或部件,有父窗口就是部件,没有就是窗口
Qt::Window //是一个窗口,有窗口边框和标题
Qt::Dialog //是一个对话框窗口 它是Qialog构造函数的默认值
Qt::Sheet //是一个窗口或部件Macintosh表单
Qt::Drawer //是一个窗口或部件Macintosh抽屉
Qt::Popup //是一个弹出式顶层窗口
Qt::Tool //是一个工具窗口
Qt::ToolTip //是一个提示窗口,没有标题栏和窗口边框
Qt::SplashScreen //是一个欢迎窗口,是QSplashScreen构造函数的默认值
Qt::Desktop //是一个桌面窗口或部件
Qt::SubWindow //是一个子窗口
//为窗口添加一些功能
Qt::CustomizeWindowHint //关闭默认窗口标题提示
Qt::WindowTitleHint //为窗口修饰一个标题栏
Qt::WindowSystemMenuHint //为窗口修饰一个窗口菜单系统
Qt::WindowMinimizeButtonHint //为窗口添加最小化按钮
Qt::WindowMaximizeButtonHint //为窗口添加最大化按钮
Qt::WindowMinMaxButtonsHint //为窗口添加最大化和最小化按钮
Qt::WindowCloseButtonHint //为窗口添加关闭按钮
Qt::WindowContextHelpButtonHint //为窗口添加一个"上下文帮助"按钮
Qt::MacWindowToolBarButtonHint
Qt::WindowFullscreenButtonHint
Qt::BypassGraphicsProxyWidget
Qt::WindowShadeButtonHint
Qt::WindowStaysOnTopHint //告知窗口,该窗口应该停留在所有其他窗口的上面
Qt::WindowStaysOnBottomHint //相反
Qt::WindowOkButtonHint
Qt::WindowCancelButtonHint
Qt::WindowTransparentForInput