Qt::WindowFlags枚举类型解析

By Xchen 20160718

在使用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
//是一个对话框窗口 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
至此,就介绍完了Qt::WindowFlags枚举类型了,掌握这些会使以后的界面设计更加游刃有余。

技术
©2019-2020 Toolsou All rights reserved,
LED 滚动文字使用mt-range实现一个数字随着滑动杆变化的效果python原语--锁Lockairflow 定时任务+时间设定+cron表达式Map---Java判断Map中是否包含某个keyunity 获取小车速度及前进或者后退PostgreSQL: 九. 索引python获取excel的一列或者一行的数据Python多线程编程(一):threading 模块 Thread 类的用法详解java中的编译时异常和运行时异常