C++跨平台开发选哪个框架?
那当然是已经发展了31年,在GUI开发领域保持领先,并在嵌入式应用程序开发占巨大优势的Qt了。
根据Qt官方数据,现在已经有10亿设备和程序是由Qt支持的,像WPS、VirtualBox、Maya等流行应用都是用Qt开发的。
如此优秀的开发框架,我们必然不能放过。前几年,很多人在用在各大排行榜上拥有一席之位的《Qt 5.9 C++开发指南》,学习Qt的C++开发。
随着Qt 6新特性的发布,为了顺应技术发展和市场需求,作者适时推出了《Qt 6 C++开发指南》,以飨读者。
▲ 点击封面,即可直接5折购书
下面就跟小异一起,看看2023年该如何入门Qt 6 C++开发吧。
01
高校教师与高级工程师强强联合
更懂Qt教学与应用
《Qt 5.9 C++开发指南》之所以大受欢迎,其中重要的一个原因是3位作者都是具有丰富教学与实践经验的开发者。
▲ 本书作者王维波
中国石油大学(华东)教师,主要从事仪器仪表开发的教学和科研工作。著有《STM32Cube 高效开发教程》,曾开发多个工业应用嵌入式系统和专业数据处理软件。他积累了丰厚的Qt实践与教学经验,在STM32软硬件系统开发领域颇有话语权。
栗宝鹃博士是中水北方勘测设计研究有限责任公司高级工程师,主要从事工程勘察、综合地球物理探测与检测中的数据处理、解译与成像等工程应用和研究工作。她有着非常丰富的Qt软件开发经验,主导或参与的Qt项目众多,在专业软件开发方面有充沛的实绩。
▲ 本书作者侯春望
本书另一位作者侯春望,同样是中国石油大学(华东)教师。他精通C++,主要从事单片机系统和应用软件开发方面的教学和研究工作,曾开发多个专业软件。他在工业应用软件设计方面可谓理论与实践并抓,指导学生多次获软件设计类大奖。
3位作者既有扎实的理论功底,又有浩博的实践经验,在Qt开发方面躬行实践,可谓身经百战。高校教师与高级工程师的强强联合,在教学形式的选择上能照顾新手,在实践案例的讲解上又通俗易懂,介绍的知识点关键且实用。
3位历练老成的作者之所以把Qt作为C++跨平台开发的选择,就是因为Qt有着得天独厚的优势。
为什么大家都选择Qt
Qt并不是一种编程语言或者某种开发环境,它是一个跨平台的开发框架,是用C++写的一套类库。
▲ Qt开发平台
使用Qt可以快速方便地为嵌入式、桌面端、移动端等目标平台开发各种应用,图形用户界面(graphical user interface,GUI)程序开发更是Qt的独门绝技。
因为优越的跨平台开发能力,加上开源的加持,Qt在全球拥有超百万的开发者与用户,是快速开发与交付的不二之选。
也因为Qt框架包含大量的类,支持GUI、数据库、网络、多媒体等各种应用的编程,所以它成为包括3位作者在内的大多数C++跨平台开发者的选择。
随着2021年9月Qt 6的第一个长期支持版本Qt 6.2的发布,《Qt 5.9 C++开发指南》也是时候更新升级了。
为适应Qt 6,新书来袭
Qt 6与Qt 5差异较大,主要体现在以下方面:
Qt6支持C++的主流标准C++17;
Qt 6的下一代QML技术能以更直观的方式创建用户界面,也是Qt的独特卖点;
Qt 6引入了新的图形架构,加入了大量不同平台API,在不同平台上运行性能更高;
Qt 6引入了CMake构建系统,体验优化提升不少;
Qt Quick统一了2D和3D,合并到一个堆栈中。
此外,Qt 6的多媒体模块就与Qt 5的完全不兼容,用《Qt 5.9 C++开发指南》学习新的Qt 6则会遇到各种问题。
作者在Qt 6.0发布时就有升级计划,等到长期支持版本Qt 6.2发布后,着手对《Qt 5.9 C++开发指南》进行更新。
02
2023年学Qt的正确姿势
当然,《Qt 6 C++开发指南》虽然是升级版本,但并不是简单地在原书上修改数据案例和升级程序API等,而是几乎重新编写了整本书。
好书再升级,Qt 6 C++编程优选之作
《Qt 5.9 C++开发指南》自2018年发行以来,帮助了不少开发者入门Qt,进军C++跨平台开发。
同时获得了读者们的大量好评,多数人认为它对新手特别友好;也有读者感叹为什么没有早点遇到它,就能省下几百块钱的课程费用了。
▲ 本书豆瓣评分8.2
总之,《Qt 5.9 C++开发指南》反响不错,在同类书排行榜中有一席之位。
如今《Qt 6 C++开发指南》的升级主要体现在两个方面:一个是为了更符合循序渐进的学习方式,让新手学习过程更为流畅顺利,全书的章节内容被重新编排;另一个是新增了章节,并且内容也更为丰富。
升级内容如下:
新增了第 6 章,详细介绍事件处理的编程方法。
新增了第 17 章,介绍串口通信编程,这对于工控相关专业人员编写上位机程序是比较实用的。
第 16 章的内容是全新的,因为 Qt 6 全新的多媒体模块与 Qt 5 的多媒体模块完全不兼容。
第 10 章中增加了图像处理的编程内容,介绍用 QImage 实现简单的图像处理,以及打印功能的编程实现方法。
第 18 章中增加了对 Qt Install Framework 软件的介绍,使用该软件可以为发布的 Qt 应用程序制作安装文件。
尽管如此,本书依然无法完全覆盖Qt的所有内容,因为其范围实在是太广泛了。
重点学习GUI应用程序设计关键技术和模块
所以,本书就重点关注GUI应用程序设计中常用的技术和功能模块。我们在学习本书的内容并掌握Qt C++开发GUI应用程序的方法后,就能在实际项目中解决具体的问题,还可以根据需要自学新的模块或类的使用。这些常用且关键的GUI应用程序设计技术和模块,主要是书中的第5章到第17章的内容。涉及模型/视图结构、事件处理、对话框和多窗口程序设计、文件读写等功能的编程方法,以及数据库、多线程、网络、多媒体、串口通信等功能模块的使用。
这部分内容并不需要我们全部学习,只要根据自己的需要与兴趣选择性学习即可,它们的内容是相互独立的,并不相互影响。
在本书最后的第18章,还介绍Qt中辅助GUI应用程序开发的一些技术和工具软件的使用,包括设计多语言界面的应用程序,使用Qt样式表设计自定义界面效果,发布Qt编写的应用程序并制作安装文件的内容。
因为全书的内容安排都是循序渐进的,前面4章主要讲解Qt的基础知识,带我们大致认识Qt后,了解其基本结构和工作原理,为后面的技术和模块学习打下基础。
▲ Qt人性化的项目管理与文件编辑界面
需要注意的是,书中会介绍CMake构建系统的基本方法,但是其更适用于大型项目管理且相对较难掌握。为了减少学习压力,书中绝大部分示例还是用qmake构建系统。
▲ Qt 6 C++开发学习路线
整本书内容循序渐进地安排,其实就是一条清晰的Qt 6学习路线。从易到难,从基础到实践,从系统认识到具体方法,路线科学合理、一见了然。
有不少人调侃Qt开发者为“Qt程序员”,就是因为做跨平台开发只需要单一框架,并且剔除了C++中许多技术坑,对开发者非常友好,新手学习难度更是大大降低。
结合书中的示例项目,我们可以更快上手Qt 6,正式踏入快平台开发。
从案例项目开始,手动实践Qt编程
书中用qmake构建的案例,正是学习Qt 6的关键。在学习完这些案例之后再动手实现一遍或多遍,是更为有效的方法。
当然,有些项目示例具有一定的难度,需要我们花一些心思去思考,去尝试,去试错,从不断的实践中体验Qt的强大。
03
更多资源、更专业软件助力Qt学习
为了更好地帮助我们动手实现书中的示例程序,书中所有的源代码都能下载使用。
我们可以在源代码上修改观察其运行效果的变化,也能与之对比看自己的代码错误在哪儿,到后面也可以自己提出更优的实现方法。
毕竟教学代码的主要目的是展示,而不是性能优先。
而且,为了便于我们查看这些示例的运行结果,同时避免不同版本Qt编译可能出现的错误,作者们专门为本书编写了一个软件,把书中所有示例集成到这个软件中。
▲ 全书示例集成软件运行时界面
与本书程序采用的Qt版本一样,该软件同样用Qt 6.2开发,并使用Qt Install Framework制作了安装文件。这种图形界面对新手的友好程度无须多说,一看就会,完全不用操心各种调试、编译错误。
04
结语
跨平台开发是当下的趋势,Qt已经在该领域发展31年,其高性能与快速开发的优势已经赢得了数百万人的认可,根植于开源的它同样是未来的选择。
这本《Qt 6 C++开发指南》可以作为我们学习Qt 6的入门之选,而且学习本书并不用精通C++,了解其基本原理并对类的概念和使用较为熟悉即可无压力学习Qt 6。
▲ 点击封面,即可直接5折购书
文章编辑:沙鱼 审校:桐希、刘雅思
参考引用:
QT官网
王维波,栗宝鹃,侯春望,《Qt 6 C++开发指南》
—END—
抽奖赠书
为了感谢大家对本公众号的支持,本次向异步社区申请了5本 《Qt 6 C++开发指南》赠送给大家。赠书采用抽奖的方式。
参与方法:关注【嵌入式大杂烩】公众号,并回复关键词:QT6开发指南
,即可获取抽奖码。
开奖时间:4月16日20:00
温馨提示:中奖者请在开奖后24小时内在抽奖小程序上填收货地址或着把地址发到我的微信,否则视为放弃。
最后,感谢异步社区的赞助!