一、回顾
使用qt2年多了,但是还是觉得很陌生,总是会被qt搞的很紧张,有时候当我自信满满的打开帮助文档,搜索某个已知的类时,由于笔误敲错了一个字母而出现了另外一个类,不过奇怪的是还真有这么一个类,哎!!!我怎么都不知道呢!看来qt的东西还真不是一般的多,随便一个笔误都可能发现新的东西。特别是qt现在已经发布了qt5.7版本,相对于qt4的时代那真是天差地别,就我个人而言,我现在用的是qt5.6.1-1,因为qt5.6版本官方声称维护2年的时间。qt5.6取消了webkit模块,如果需要使用可以自行编译,我自己也对qt5.6.1-1的整个模块进行了编译,有需要的小伙伴可以参考msvc2013编译qt5.6源码
本文主要是想讲述qt的一个代码书写方式,当然了这样说有些大,其实就是qt他的源码在分层上是把成员都单独拉到一个filename_p.h的头文件里,这样做的有好处也有坏处,下面是我自己的观点:
| 优点 | 缺点 | |
| qt |
1、庞大的代码容易管理 2、成员的私有实现和具体对外开放的接口分离 |
1、阅读性差 2、可扩展性差 |
表1 qt优缺点
上述缺点都是我个人认为,其中可扩展性差不是说qt不能扩展,而是扩展的时候有一定限制,因为qt的一个功能实现的最基本单元就是filename.h、filename.cpp和filename_p.h,通常情况下我们只能拿到filename.h,而私有的filename_p.h文件拿不到,所以不能进行对齐进行扩展,这也导致了一些操作不能很好的而进行,除非qt源码给我们了相关接口,否则我们是很难去维护私有的filename_p.h的实现,比如:qt的qcharts模块,这个模块是qt5.7才正式开源的模块,当然了有兴趣的同学可以自己手动在自己的当前qt模块下编译qtcharts,然后将开发所需要的库都加入到自己当前的qt版本中。
为什么说提到qcharts模块呢,是因为我之前看过大概的实现原理,他也是一贯的qt代码作风,那就是不容易阅读,每一个对外暴露的接口,仅仅是接口而已,而他具体的实现都是隐藏在另外一个没有暴露给用户的接
