倾心倾力之作《Qt 5.9 C++开发指南》

时间:2021-11-14 03:20:52

五一假期前收到了人民邮电出版社寄来的书,我们写的《Qt 5.9 C++开发指南》终于印刷出来了!从2016年11月开始写书,到今天终于印刷出版,历时约一年半,现在它终于面世了。

  倾心倾力之作《Qt 5.9 C++开发指南》  倾心倾力之作《Qt 5.9 C++开发指南》

成书过程

由于做项目的需要,在2014年开始转而用Qt编写软件。在本人学习Qt的过程中,买了好几本Qt编程的书,但是没有发现特别满意的。《C++ GUI Qt 4编程》和《Qt高级编程》虽然是比较经典的书,但是内容是基于Qt 4的,一些内容与Qt 5已经不兼容,照着这两本书学习经常出现问题。有的书写的像软件使用手册,缺乏完整的实例,只有类的特性的罗列和简短示例代码。有的书的实例程序包含大量构造UI的冗余代码,淹没了主要特性的说明,有扩充页数的嫌疑。有的书甚至只是列出实例代码,解说的很少。

作为一个既从事于教学工作,又一直从事软件开发的人员,深知该如何学习和一个编程语言,也深知该如何由浅入深、通过实例和练习教学生学习一门编程语言。于是,在2016年底正好暂时没有什么项目要做,就决定开始写一本Qt编程的书,将自己的经验总结为一下,为学习Qt的人提供一本有价值的书。

由于是自发决定写的一本书,没有项目资助(其实也根本不需要),也没有约稿时间限制,写作更加*,完全按照自己的内容安排和时间进度来写。开始写书之后,除了日常的工作外,闲暇的时间几乎全花在写书上了。为了一个小的编程主题的实例程序,可能花好几天编程并完善,然后再整理写出来。慢工出细活,全书的初稿用了10个月才完成,又用了1个月时间检查和修改。

完成全书后,与人民邮电出版社联系并发去样章,很快收到肯定的答复,经过几次联系后就签订了出版合同。最终稿交给出版社之后,就由出版社编辑和排版,并按流程安排出版了。在此,非常感谢人民邮电出版社,特别要感谢负责此书的杨编辑。

我素来信奉“君子先行其言而后从之”的原则,在书没有写好之前不联系出版社,在书没有正式印刷出版之前不发布任何消息。现在书已经正式印刷出版了,好东西也需要介绍推广的,不然就是“养在深闺人未识”了,所以下面对本书的特点做一个介绍。

本书特点

Qt是非常优秀的跨平台应用开发框架,在专业应用软件开发方面,如果要考虑跨平台,Qt 几乎是最好的选择。本书就专门介绍Qt C++编程,本书有如下的特点:

1. 本书专注介绍Qt C++编程。Qt 的C++类库是Qt的核心,适合于开发跨平台的桌面应用程序,例如在专业应用软件开发方面一般使用Qt C++。本书不涉及Qt的另外一个编程语言QML,QML适合于开发移动平台上的应用。

2. 本书在介绍各个编程主题的编程原理时,注重通过实例讲解编程原理,同时也注意总结类的主要用法。每个主题都精心设计了完整的实例程序,很多实例的源代码甚至可以直接用于自己的软件项目里,例如8.3节介绍Graphics View绘图架构时设计了一个小型的矢量图绘图软件,能用这个程序可以进行简单的矢量图绘制。

倾心倾力之作《Qt 5.9 C++开发指南》

基于Graphics View结构的矢量图绘图程序(书中第235页)

3. 本书注意由浅入深地讲解编程原理,将一些基本方法和原理讲透彻。例如,在第2章“GUI应用程序设计基础”里先介绍了用Qt Creator设计的.ui文件的原理,应用程序如何由.ui文件自动创建界面,再介绍手工代码创建界面的原理,搞清楚两种方法的关联之后,再介绍混合方式灵活设计UI界面。

4.本书注重内容的严谨性,所有实例程序均经过编译和测试,需要额外资料进行说明的地方均注明链接地址或搜索关键字。例如第15章介绍摄像头编程时,Windows平台不能实现摄像头录像,对此问题进行了说明,还给出了在Qt官网上的搜索关键字,可以查看原始信息。

5. 本书介绍了 Qt Charts和Data Visualization两个模块的编程方法,这两个模块是Qt 5.7以后才引入社区版的,其他有关Qt编程的书籍里都没有介绍过。Qt Charts是一个非常有用的模块,可以绘制各种图表,在专业软件中可以绘制更复杂的图形。例如,在本人开发的微地震数据处理软件中,就用Qt Chart显示多道SEGY文件的波形曲线,实现了强大的显示显示功能。

倾心倾力之作《Qt 5.9 C++开发指南》

使用Qt Charts模块的类实现的SEGY文件波形显示功能

6. 本书不介绍C++语言基础,要求读者具有一定的C++语言基础。

7. 本书虽然主要介绍的是Windows平台下的Qt C++编程,但是所涉及的Qt C++类的用法在Linux、macOS、嵌入式等平台上也是一样的。

本书适合于具有C++语言基础,想要学习Qt C++,并准备用Qt C++编写应用软件的读者。

这本书是本人的倾心倾力之作,是对实际学习和使用经验的总结和整理。虽然不是什么高大上的学术著作,但是它对于学习Qt的读者应用是有用的,这也就是其价值所在了。