当前位置:网站首页>Qt | QWidget 的一些总结
Qt | QWidget 的一些总结
2022-08-02 14:41:00 【华为云】
前言:
在 Qt 中,我们用到的最多的类就是 QWidget,但是我们为什么要用它,为什么所有的部件的基类都是 QWidget,下面做一下解释:
在 Qt 中,QWidget 类是所有用户界面对象的基类(这是 Qt 框架设计的),被称为基础窗口部件。QWidget 类又继承于 QObject 类,QObject 类也是一个很重要的类,在开发过程中也经常用到。QObject 和 QPaintDevice 类共同组成了 QWidget 类。
QWidget 分别作为部件和子部件:
窗口部件(Widget)简称部件,是 Qt 中建立用户界面的主要元素。像主窗口(MainWindow)、对话框(Dialog)、标签(Label)、按钮(Button)、文本输入框(textEdit)等都是窗口部件。
Qt 中把没有嵌入到其他部件中的部件成为窗口,一般窗口都有边框和标题栏。QMainWindow 和大量的 QDialog 子类是最一般的窗口类型。窗口就是没有父部件的部件,所以又称为顶级部件(top-level widget)。
与其相对的是非窗口部件,又称为子部件(child widget)。在 Qt 中大部分部件被用作子部件,嵌入在别的窗口中。Qt 中销毁父对象的时候会自动销毁子对象,所以在 delete 父部件的时候,会自动销毁作为 widget 的所有子部件。
QWidget 的拓展:
QWidget 提供了自我绘制和处理用户输入等基本功能,Qt 提供的所有界面元素不是 QWidget 的子类就是与 QWidget 的子类相关联。要设计自己的窗口部件,可以继承自 QWidget 或者是它的子类。
QWidget 的构造函数有两个参数:
QWidget *parent = 0;
Qt::WindowFlags f = 0;
前面的 parent 指的是父窗口部件的指针,默认值是 0,表示没有父窗口。
后面的 Qt::WindowFlags 用来设置窗口属性,值为枚举类型。可以为单个类型枚举,也可以为多个类型枚举进行位或操作。如 Qt::Widget(默认类型)、Qt::Dialog(对话框类型)、Qt::SplashScreen(欢迎窗口类型)、Qt::Dialog | Qt::FramlessWindowHint(没有边框的对话框)、Qt::SplashScreen | Qt::WindowStaysOnTopHint(停留在所有其他窗口上面的欢迎窗口)等。
QWidget 的显示状态:
我们一般看到的 QWidget 显示出来就是默认的显示状态,其实它还有其他的显示状态。用 QWidget::setWindowState()函数用来设置窗口的状态。
参数为:
Qt::WindowMaximized(最大化)
Qt::WindowMinimized(最小化)
Qt::WindowFullScreen(全屏显示)
Qt::WindowActive(活动窗口)。
Qt::WindowNoState(正常状态,默认状态)等。
创建自定义控件时,要创建的控件也可以继承 QWidget 类。QWidget 既可以是父窗口也可以是子窗口。
在之后的学习过程中还会对这部分知识做一些补充,如果有不同的见解可以写在评论中讨论一下。
边栏推荐
- How to check the WeChat applet server domain name and modify it
- 学习编程的目标
- 【 Leetcode string, the string transform/hexadecimal conversion 】 HJ1. The length of the string last word HJ2. Calculation of a certain number of characters appear HJ30. String merging processing
- PostGresql listen与notify命令
- 2022-7-12 第五组 瞒春 学习报告
- 【Untitled】
- 2022-07-11 第五小组 瞒春 学习笔记
- 机械键盘失灵
- Traverse Heap PAT Class A 1155 Heap Path
- CNN flower classification
猜你喜欢
go——协程调度
MySQL语法入门
Impulse response invariant method and bilinear transformation method for IIR filter design
this beta version of Typora is expired, please download and install a newer version.Typora的保姆级最新解决方法
2022-7-12 第五组 瞒春 学习报告
第四章-4.1-最大子数组问题
2022-07-18 第五小组 瞒春 学习笔记
阿里云上安装MQTT服务器
SQL查询数据之多表(关联)查询
【Frequency Domain Analysis】Spectral leakage, frequency resolution, picket fence effect
随机推荐
2022-07-10 第五小组 瞒春 学习笔记
2022 Low Voltage Electrician Exam Questions and Online Mock Exam
IPtables 和binlog
Win 10、Win 11 安装 MuJoCo 及 mujoco-py 教程
OneFlow源码解析:Op、Kernel与解释器
ELK日志分析系统
PAT Grade A 1143 Lowest Common Ancestor
PAT甲级 1137 期终成绩
浅析PM2实用入门指南
PAT Class A 1019 Common Palindrome Numbers
【无标题】
PostGresql listen与notify命令
为什么四个字节的float表示的范围比八个字节的long要广
Qt | 关于对象树和元对象的相关问题
【个人总结】2022.7月结
太香了!阿里Redis速成笔记,从头到尾全是精华!
mysql 自动添加创建时间、更新时间
软件代码签名证书怎么申请
遍历堆 PAT甲级 1155 堆路径
QT基础第四天(4)qt事件机制:事件基础概念,常见事件机制,事件处理以及事件的重写