QtCreator类结构生成模板说明

QtCreator类结构生成模板说明

1目的

在应用层开发中,使用QtCreator集成IDE开发代码,在开发过程中添加类时IDE会自动生成相应代码,为满足与主流c++代码规范的统一,将Qt中自动生成的代码与规范存在的差异和修改以及修改代价进行梳理,讨论在代码规范统一,额外修改代价小中快捷有效的Qt编码规范。

2类头文件说明

在这里插入图片描述
1:宏定义防止文件被重复引用;
2:自动包含父类头文件;
3:QT_BEGIN_NAMESPACE宏是Qt为了统一命名空间下的编译而引入。Qt自动创建一个和主类(MainWindow)名字相同,命名空间不同(主类为匿名的命名空间)的类。同时声明一个私有的ui指针,用来访问界面对象,如下图。
在这里插入图片描述
4:主类结构,包括Q_OBJECT宏(信号槽必须),构造函数、析构函数及指向界面对象的ui指针。

3类源文件说明

在这里插入图片描述
1:自动包含主类(MainWindow)和Ui::MainWindow类的头文件
2:主类构造函数,父对象,继承关系以及变量ui初始化,构造函数中执行Ui::MainWindow类中setupUi函数,进行界面初始化。
3:主类析构函数。

4与现有规范的差异及修改

4.1文件命名

要求:C++的头文件和cpp文件名和类名保持⼀致,小写蛇形命名方式。
差异:Qt自动生成小写文件名
修改:添加界面类时手动修改文件名
代价:容易

4.2防止文件被重复引用宏定义

要求:#ifndef H_类名_H
差异:Qt自动生成#ifndef 类名_H
修改:自动生成后手动修改
代价:容易

4.3防止文件被重复引用宏定义

要求:第一层统一为namespace Ui,第二层为namespace 模块命名空间。
差异:Qt将界面类自动创建一个命名空间为Ui下的界面类
修改:
a:修改自动生成的ui_类名.h中命名空间
自动生成如下图:
在这里插入图片描述
修改后如下图:
在这里插入图片描述
b:修改类头文件中与界面类相关声明
自动生成如下图:
在这里插入图片描述
在这里插入图片描述
修改后如下图:
在这里插入图片描述
在这里插入图片描述
c:修改源文件中界面类初始化位置
自动生成如下图:
在这里插入图片描述
修改后如下图:
在这里插入图片描述
d:头文件和源文件中最外层添加Ui命名空间和模块名命名空间,如下图:
在这里插入图片描述
在这里插入图片描述
e:main.cpp中为主类添加命名空间,如下图:
在这里插入图片描述
代价:困难

4.3初始化和类的构造

要求:显示初始化和拷贝构造、拷贝赋值、移动构造、移动复制。
差异:Qt自动生成QMainWindow类时没有explicit关键字,只有构造函数
修改:手动添加显式初始化及拷贝构造、拷贝赋值、移动构造、移动复制的delete。

在这里插入图片描述
代价:容易

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值