Qt::WindowFlags枚举类型解析
By Xchen 20160718
在使用Qt设计的时候经常会看到QWidget控件的构造函数出现下面这样一句话:
- 1
- 1
QWidget *parent=0
这段代码容易理解,是指父窗口部件的指定。
Qt::WindowFlags f=0
这代码就有一些让人不解了,其实它是指定控件的窗口标识的。值为0即Qt::Widget。
那么就要好好说说控件的窗口标识的设置了。窗口标识由两部分组成分别是窗口类型和窗口提示hint,一个窗口只有一个窗口类型。窗口提示定义了窗口的外观,可以有多个提示,窗口提示进行按位取或即可。
要说清楚Qt::WindowFlags枚举类型就必须清楚两个概念:窗口和部件(这样划分便于区分)
窗口:相对独立的,有子窗口和父窗口之分,主要特点就是窗口有完整的边框。
部件:必须依赖于父窗口而存在,依赖性较强,出现在父窗体的界面内部。
有了上述的概念就好解释Qt::WindowFlags枚举类型的用法了。首先判断一个控件是否是窗体先根据参数parent的指定,要是值为0那么就可以判断其是一个窗口。否则需要根据Qt::WindowFlags枚举类型的值才可以判断其是否为窗口还是部件。
在Qt Assistant里面搜索Qt::WindowFlags就会出现其详细的解释。这边摘下其中部分内容:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
至此,就介绍完了Qt::WindowFlags枚举类型了,掌握这些会使以后的界面设计更加游刃有余。