来源:https://blog.csdn.net/HongAndYi/article/details/80445620

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

一、第一个特点:“新”

本书讲解内容和例子程序都是基于Qt 5.9版本的,是目前同类书籍中的最高版本。目前(2018年5月)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++开发指南》一书特点总结相关推荐

  1. 好教程推荐系列:《Qt 5.9 C++开发指南》

    官方源码(配套资源): 作者:王维波 栗宝鹃 侯春望 出版社:人民邮电出版社 出版时间:2018年05月 https://www.epubit.com/bookDetails?id=N25171 官方 ...

  2. Qt与FFmpeg联合开发指南(二)——解码(2):封装和界面设计

    与解码相关的主要代码在上一篇博客中已经做了介绍,本篇我们会先讨论一下如何控制解码速度再提供一个我个人的封装思路.最后回归到界面设计环节重点看一下如何保证播放器界面在缩放和拖动的过程中保证视频画面的宽高 ...

  3. apollo local 模式_Java客户端使用指南 - 五、本地开发模式 - 《携程 Apollo v1.4 开发指南》 - 书栈网 · BookStack...

    五.本地开发模式 Apollo客户端还支持本地开发模式,这个主要用于当开发环境无法连接Apollo服务器的时候,比如在邮轮.飞机上做相关功能开发. 在本地开发模式下,Apollo只会从本地文件读取配置 ...

  4. px4 uavcan linux,UAVCAN总线 - UAVCAN固件升级 - 《PX4开发指南》 - 书栈网 · BookStack

    UAVCAN 固件升级 电子调速器(ESC)矢量控制代码库 (Pixhawk ESC 1.6 and S2740VC) 下载ESC代码: git clone https://github.com/th ...

  5. qdir 类似工具_Qt 5.9 C++开发指南 PDF 高质量影印版

    给大家带来的一篇关于Qt开发相关的电子书资源,介绍了关于QT5.9编程方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小276.3 MB,王维波编写,目前豆瓣.亚马逊.当当.京东等电子书综 ...

  6. 《Three.js 开发指南》源码示例说明以及在线demo(原书第二版)附第三版的代码下载

    <Three.js 开发指南>基于原书第二版 源码来自华章出版社官网随书源码,修改替换了其中不能跑的示例,保证每个demo都可以运行. 源码以及示例说明下载: git下载地址 huazha ...

  7. 一本超越期待的 C++ 书——简评 Boost程序库完全开发指南 深入C++ 准 标准库

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 赖勇浩( ...

  8. 一本超越期待的 C++ 书——简评《Boost程序库完全开发指南:深入C++“准”标准库》...

    作为一个时不时要用一点 C++ 的程序员,我常常自嘲为斯德哥尔摩综合症患者,用 Python 写着懒散的代码时,会怀念以前编写 C++ 代码的那种被虐感.但当真正要写一些 C++ 代码的时候,又会怀念 ...

  9. 一本超越期待的 C++ 书——简评《Boost程序库完全开发指南:深入C++“准”标准库》

    赖勇浩(http://laiyonghao.com) 作为一个时不时要用一点 C++ 的程序员,我常常自嘲为斯德哥尔摩综合症患者,用 Python 写着懒散的代码时,会怀念以前编写 C++ 代码的那种 ...

最新文章

  1. Python中的str与unicode处理方法
  2. 微软官方宣布:Edge 浏览器将采用 Chromium 内核
  3. 来潮汕,这些食物不吃后悔一辈子...
  4. mt5 mysql数据库_Django -- 使用MySql数据库
  5. Linux - which xxx - 查找执行的命令所在的路径
  6. 正则表达式的性能评测
  7. python三维可视化图,如何使用Python在(交互式)3D中可视化图形?
  8. 如何配置 tomcat 服务器
  9. C语言写学生成绩管理系统(超详细注解)
  10. 初学3D建模有这80G笔刷简直绝了
  11. Mac如何用Boot Camp安装Windows 11?告诉你如何安装 能不能安装!
  12. 大数据专业认知实习作业
  13. 【Excel】取消合并单元格后快速填充
  14. unity动态禁用/启用组件enabled
  15. mysql冗余_如何合理使用数据库冗余字段的方法
  16. 2021十大手表品牌TOP排行榜
  17. Certificate、Provisioning Profile、App ID的介绍及其之间的关系
  18. 什么邮箱发送邮件不进垃圾箱,邮件进垃圾箱了是什么原因怎么办?
  19. bootstrap:导航栏【基础、简单、实用】
  20. Pandas处理日期数据的常见操作集锦

热门文章

  1. win32窗口问题-CreateWindow创建窗口一直失败
  2. 恢复edge浏览器侧边栏newbing显示(实测有效)
  3. 原来谷歌有个“谷歌编程学院”-google code university
  4. entrySet用法 以及遍历map的用法
  5. 【华为OD机试真题 C++】硬件产品销售方案
  6. Snips Voice Platform: an embedded Spoken Language Understanding system for private-by-design voice i
  7. 股票模拟交易日志(八)
  8. Werkzeug学习笔记
  9. 永久删除的文件如何恢复
  10. Linux服务器网口virbr0,centos7.3的virbr0虚拟网络接口的关闭