QT基础与细节理解
前言
本博客旨在记录QT学习过程中的一些细节知识理解,由于问题的产生并非成体系,所以前期的记录可能会无序一些。烦请读者参阅目录进行快速的问题定位与跳转
QT基础与细节理解
- 前言
- 正文部分
- QT基础1:正确理解: QWidget(parent), ui(new Ui::ui_mywidget)
正文部分
QT基础1:正确理解: QWidget(parent), ui(new Ui::ui_mywidget)
先摘抄一个定义完备的基本窗口项目,项目的结构如下:
- mywidget.pro --- qmake项目管理文件
- mywidget.h --- 基本窗口头文件
- mywidget.cpp --- 基本窗口类文件
- main.cpp --- 主类文件
- mywidget.ui --- 基本窗口样式文件
其中,mywidget.cpp中有参构造函数的写法引起我的注意:
MyWidget::MyWidget(QWidget *parent): QWidget(parent), ui(new Ui::ui_mywidget)
经过查阅资料,得知这是C++的一种参数初始化方式—参数初始化表,在正式进入构造函数前,会依次执行冒号后的初始化内容:
QWidget(parent)
— 表征派生类MyWidget
调用基类QWidget
的有参构造方法QWidget(QWidget *parent)
,用于将由派生类初始化的对象注册为parent
的子窗口(如果parent
非空)- ui(new Ui::ui_mywidget) — 等价于
Ui::ui_mywidget *ui = new Ui::ui_mywidget
(也可以使用后者的写法,因为此参数的初始化不强调顺序),即完成指针变量ui的初始化工作
通过上述解析,我们可以清晰地认识到以下两个问题:
- 冒号后的内容是C++的参数初始化表
- 其有直接进行的函数调用,也有表征赋值的右值引用