Qt从入门到放弃--01 QWidget类(QWindowFlags学习)

目录

Part1、QWidget继承关系、构造方法、常用方法、案例

        a、继承关系

        b、构造方法及案例

        c、常用方法及案例

Part2、总结


Part1-QWidget继承关系、构造方法、常用方法、特性

a、继承关系

继承自:QObject 和 QPaintDevice两个类

被继承的类:QAbstractButton、QComboBox等

b、构造方法

QWidget类只有一个构造方法,参数有:

参数1:

        parent-->指定一个父窗体对象,Qt特有属性,用于资源释放。

参数2:

        f-->枚举类型WindowFlags,用来指定窗体的系统类型和增减窗体功能,可以通过|操作符来给窗口增配功能

 

通过看文档已经研究官方文档中的一个案例,f参数实际上分两部分内容,一部分位内容用于指定窗体的类型,一部分位用于增减窗体的功能。

窗体的类型Flag:

Qt::Widget,Qt::Window这两个类型的窗体我目前没有研究出来有什么区别,有知道的大神可以提点一下,有边框,有头部,有标题,有最小化,最大化,关闭按钮,可以拖动位置,可以拖大拖小。

Qt::Popup类型窗体,没有边框,没有头部,没有标题,没有最大化,最小化以及关闭按钮,无法拖大拖小以及拖动位置,如果窗体失去焦点会自动关闭

 Qt::Dialog类型窗体,有边框,右上角没有最大化最小化按钮,有关闭和帮助按钮。可以拖动位置,可以拖大拖小。

 Qt::Tool类型窗体,无边框,有头部,有标题,没有最大化最小化按钮,有关闭按钮。可以拖动位置,可以拖大拖小。有焦点时管关闭按钮是红色。

Qt::Sheet类型窗体,貌似和Qt::Dialog是一样的,暂时没有发现区别,有边框,右上角没有最大化最小化按钮,有关闭和帮助按钮。可以拖动位置,可以拖大拖小。

Qt::ToolTip类型窗体,没有边框,没有头部,没有标题,没有最大化,最小化以及关闭按钮,无法拖大拖小以及拖动位置,该窗体会一直处于桌面顶部

 

 Qt::Drawer类型窗体,貌似和Qt::Tool类型一样,无边框,有头部,有标题,没有最大化最小化按钮,有关闭按钮。可以拖动位置,可以拖大拖小。有焦点时管关闭按钮是红色。

 Qt::SplashScreen类型窗体,启动画面(字面意思),没有边框,没有头部,没有标题,没有最大化,最小化以及关闭按钮,无法拖大拖小以及拖动位置

窗体的功能Flag:

Qt::MSWindowsFixedSizeDialogHint:添加后最大化按钮失效,且窗体不能拖大拖小了。

Qt::FramelessWindowHint:添加后窗体没有了边框和头部,不能拖大拖小,拖动位置了。

Qt::WindowTitleHint:添加后,就算把窗体拖到最小也能看到标题,且关闭按钮失效,最小化最大化按钮消失。

Qt::CustomizeWindowHint:添加后,窗体没有边框了,可以拖大拖小,不能拖动位置。

 

 Qt::WindowMinimizeButtonHint:添加后,窗体只有最小化有效,最大化以及关闭按钮失效。

 

Qt::WindowMaximizeButtonHint:添加后窗体只有最大化按钮有效,最小化和关闭按钮消失。

 

Qt::WindowCloseButtonHint:添加后最大化最小化按钮消失,只剩下关闭按钮有效。

 Qt::WindowContextHelpButtonHint:添加后最大化最小化按钮消失,关闭按钮失效,新增了帮助按钮。

Qt::WindowStaysOnTopHint:添加后窗口会一直置于桌面最顶部,不能和Qt::WindowStaysOnButtonHint一起添加。

 

c、 常用方法和槽函数(写几条常用的,后面觉得有些常用的再补充)

方法:

1、void setWindowFlags(Qt::WindowFlags type)
作用:用来设置窗体的类型和功能
返回值:无
参数:Qt::WindowFlags类参数,用以指定窗体的类型和增减窗体的功能

2、void reszie(int w,int h)
作用:重置窗体的大小
返回值:无
参数:w----width h---height  单位像素

3、void move(int x, int y)
作用:移动窗体到相对屏幕坐标(x--横坐标,y--纵坐标)
返回值:无
参数:x--横坐标,y--纵坐标

4、void setLayout(QLayout *layout)
作用:为QWidget指定布局,实际上在布局构造时指定这个窗体为父对象也是同样效果。
返回值:无
参数:layout 布局的指针

槽函数:

1、void setWindowTitle(const QString &)
作用:用来设置窗体的标题
返回值:无
参数:字符串

2、void show()
作用:显示窗体和它的子窗体。如果一个窗体不是任何窗体的子窗体,没有调用show函数是无法看到
这个窗体的。如果一个窗体是另一个窗体的子窗体,只有父窗体调用show函数这个窗体才会跟随父窗
体一起显示出来。
返回值:无
参数:无

3、void showMaximized()
作用:最大化显示窗体
返回值:无
参数:无

4、void showFullScreen()
作用:全屏显示窗体,无法看到标题栏和最大化最小化等按钮,类似与看视频的全屏模式。
返回值:无
参数:无

5、bool close()
作用:关闭窗体,相当于点右上角关闭的作用。
返回值:无
参数:无

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值