目录
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()
作用:关闭窗体,相当于点右上角关闭的作用。
返回值:无
参数:无