《Qt 5.9 C++开发指南》一书特点总结

《Qt 5.9 C++开发指南》已正式出版销售快一个月了,期间也写了一篇文章介绍此书的成书过程和特点,但是对其特点介绍的不够全面,或者说总结的不够好,并没有表达出全书的特点。读者拿到一本这样的书,也不可能在随便翻两遍之后就知道其特点。一本编程类的书的好与坏,需要在使用这本书大概学习过一遍才能充分理解其特点,需要经过时间和大量读者的考验后才能体现其优劣。我仔细对比了本书与市面上其他几本书的区别,并再次翻阅本书的内容,可将本书的特点总结为以下三点:新、专、细。

第一个特点:“新”

本书讲解内容和例子程序都是基于Qt 5.9版本的,是目前同类书籍中的最高版本。目前(20185月)Qt官网的最新版本是Qt 5.11

Qt的版本更新比较快,且版本更新时会新增一些类或停止维护一些以前版本的类,如果不是为了维护用旧版本编写的程序,一定要选用最新版本的Qt进行学习和程序开发。Qt 5与Qt 4就有很大的区别,一些在Qt 4里的模块或类在Qt 5里根本就没有,即使Qt 5系列的版本,各版本之间也会有一些变化,例如在Qt 5.1中新增了QtWebkits模块,而这个模块在Qt 5.6版本中被剔除。

Qt编程经典的书《C++ GUI Qt 4编程》和《Qt 高级编程》是基于Qt 4的,一些内容已经过时,照着这两本书去学习如果自己不知灵活查找最新的资料会遇到很多问题。

Qt 5.9是一个LTS(long term supported,长期支持)版本,在未来至少三年内提供更新支持,而上一个LTS版本是Qt 5.6 LTS。从Qt 5.6到Qt 5.9增加了许多新的特性,例如从Qt 5.7开始,原来只在商业许可版本中有的Qt Charts、Data Visualization模块在开源许可版本中也有了,这是两个非常实用的模块。本书专门在第9章和第10章介绍了Qt Charts和Data Visualization模块的使用,这是目前市面上的其他同类书里没有的。

第9章介绍Qt Charts的一个实例程序samp9_3,演示了各种类型图表的编程方法

当然,随着Qt新版本的不断出现,本书也会变得越来越旧。如果本书得到读者们的认可,再版时一定会根据最新版本Qt进行更新。

第二个特点:“专”

“专”已经体现在本书的书名里,本书专注讲解Qt C++应用程序开发。

Qt的C++类库是Qt的核心,在专业应用软件开发中我们一般习惯于使用C++,因为开发者对C++比较熟悉,而且很多现成的第三方类库是用C++编写的,使用Qt C++便于软件界面设计和第三方代码资源的集成。

Qt还有一个独有的QML语言和Qt Quick界面设计方法,主要适用于手机、平板电脑等移动平台的界面设计。本书并不涉及这部分内容,感兴趣的读者可看专门介绍这方面内容的书。

Qt是一个跨平台的库,支持Windows、Linux、Android、iOS等各种平台,还支持嵌入式系统开发。但是不管在哪个平台上,若使用Qt C++开发,编程的基本方法都是一样的。有些书介绍Qt在Linux、Android等平台上的编程,在搭建好开发环境后,其主要内容其实还是Qt的类库使用方法,与在Windows平台上的开发并无多大差别。

所以,本书专注于讲解Windows 7 64位平台上的QtC++编程,读者学会了本书中的Qt C++类库常见的一些模块和类的编程方法后,在其他平台上使用Qt编程的方法也就是类似的了。

第三个特点:“细”

有的读者一看本书的书名《Qt 5.9 C++开发指南》,以为本书类似于软件使用手册,内容介绍会不够详细,也缺少完整的编程实例。这是书名导致的误解。在给本书命名时,因为市面上已经有“开发实例”、“开发实战”之类的书,命名时为了区别,所以起了这个名字。其实这个名字不太贴切,开始写书时计划的书名是《Qt 5.9 C++应用程序开发》,这个书名其实更贴切一些。

本书的内容和讲解其实是比较细致的,含有大量的完整实例项目程序,也注重内容的逻辑表达,完全从学习者的角度考虑到哪些是需要重点讲明白的,哪些是无需啰嗦的。主要体现在以下几个方面:

(1)涉及到原理性的内容,会先讲原理,再讲编程实例。例如,在第5章介绍Model/View编程结构时,先讲Model/View结构的基本原理、一些核心的类的作用作介绍,然后再分节用实例介绍了几个主要的模型类和视图类使用方法。

例如,介绍模型类QStandardItemModel的使用的实例项目是samp5_3,它演示了QStandardItemModel、QTableView、QItemSelectionModel的用法,而且从一个纯文本数据文件中读取数据到界面上进行显示和编辑,还可以将修改后的数据保存为文件,是一个完整的实用的小程序。

演示QStandardItemModel和QTableView使用的实例samp5_3运行时界面

(2)在第2章“GUI应用程序设计基础”里首先介绍了UI窗口的可视化设计、代码化设计和混合设计方法,在后续章节中的UI设计都基本采用可视化设计,而不是像某些书里列出大量构造UI的代码,实属毫无意义的冗余。使用Qt就应该充分使用其可视化UI设计功能,而聚焦于功能的实现。

在讲解实例程序时,本书尽量地按照程序的设计逻辑逐段展开进行说明和解释,使读者既能了解程序的设计思路,又能在解说中了解关键代码的原理,而不是像某些书那样,一股脑儿地列出整个文件的代码,而又缺少解释和说明。

(3)书中的实例程序全部是作者针对讲解内容的需要全新设计的,这些实例程序一般具有完整的操作界面,具有完整的功能演示,可以当做一个完整的应用程序实例来研究。

例如,在4.7节为了介绍QTreeWidget的使用设计了一个实例samp4_8,具有一般的目录树节点动态管理功能,同时还演示了用QLabel显示图片的功能,以及QDockWidget用于组件停靠的功能。

实例Samp4_8运行时界面

例如,在8.3节讲解Graphics View绘图架构时,设计了一个小型的绘图程序samp8_5,可以进行简单的矢量图绘制。其内容涉及到Graphics View架构中视图、场景、图形项的使用。

基于Graphics View结构的绘图程序samp8_5

例如,第9章介绍QtCharts绘制图表时,用实例samp9_2详细讲解了如何绘制折线图,如何设置序列、坐标轴等绘图元素的属性;用实例samp9_3介绍如何绘制柱状图、饼图等其他类型图表。

实例samp9_2,详细演示如何绘制折线图,以及图表的序列、坐标轴的各种属性设置

这些实例程序难度适中,对于初学者可能稍微有些难度,但是稍微熟悉了Qt,掌握了Qt应用程序设计的方法后,就不难看懂这些实例程序。通过这样一些小型完整的应用程序,不仅可以学会核心类的使用,还可以领会应用程序设计的方法。

总结

以上是总结的本书的一些特点,觉得这次的总结还算贴切,能反应本书的特点。至于说读者到底觉得这本书如何,还是需要读者细致翻阅本书,通过本书学习后才能切实感受到它的特点,评判它到底质量如何。

即便是一本小说,也要经过读者和时间的检验,才能逐渐显现其光芒。大浪淘沙,时间洗涤,留下的才是经典。我不敢说这本书一定比其他同类书好,但是我敢说我写作的态度是真诚的,我是倾心倾力地为了写出一本好书,余下的就静待时间的检验了。


引申阅读:《Qt 5.9 C++开发指南》分章内容详细摘要


猜你喜欢

转载自blog.csdn.net/HongAndYi/article/details/80445620