前言 Qt是一个基于C++语言的应用程序开发框架,可以用于开发图形用户界面、数据库、网络、多媒体、嵌入式等方面的应用程序。实际上,Qt就是一套功能强大的C++类库,与Microsoft Visual C++的MFC类似。但与MFC相比,Qt具有开源、跨平台、易扩展等众多的技术优势。另外,Microsoft公司已经停止了对MFC的更新,所以,如果需要可视化学习C++、利用C++开发专业领域的应用系统,Qt是非常好的选择。 本书以Qt 6.2.4 LTS版本为开发平台,详细介绍使用Qt进行 C++桌面应用程序开发的基本技术。全书共12章,包括初识Qt框架、Qt开发基础、界面设计组件、主框架窗体、对话框设计、事件系统、文件与数据库、模型/视图结构、图形绘制、多媒体编程、网络编程和进程与线程等内容。 本书第1章和第2章介绍Qt框架的基础知识,包括Qt的下载和安装、开发工具Qt Creator的使用,以及Qt的模块、元对象系统和信号与槽工作机制等;第3~5章介绍Qt界面组件技术,也就是Qt的图形用户界面设计技术,包括Qt窗体和控件的特征与应用,以及窗体与窗体间、控件与控件间、窗体与控件间的数据交换技术等;第6章介绍Qt的事件处理系统,包括事件的表示、产生、分发和处理等;第7章和第8章介绍Qt的数据持久化技术,包括Qt对文件和数据库的操作方法以及Qt的模型/视图结构,该结构能够将数据的显示与编辑相分离,从而大幅简化对数据源的处理,降低输出的编程难度;第9~12章介绍Qt的几种专门技术,包括二维图形的绘制技术、多媒体应用技术、网络通信技术和多线程技术等。 本书是一本C++面向对象程序设计的实践性教材,不对C++程序设计语言的基本特性进行介绍,需要读者已经掌握C++语言编程的基本原理,对类的概念和使用比较熟练。如果读者对C++语言还不够熟悉,可以先学习编者编著的《面向对象程序设计(C++语言描述)》和《Visual C++ 2019程序设计与应用》等有关C++编程的书,掌握基本的C++面向对象编程技术。 本书的主要特色如下。 1. 技术先进,使用广泛 本书介绍的Qt C++桌面应用开发技术在目前软件开发领域的C++应用系统开发中被广泛使用,尤其是在专业研究及应用领域的系统开发中。截至2023年11月,Qt的最新正式发布版本为6.5.2,本书采用了Qt 6.2.4 LTS版本进行编写,保证了开发技术的先进性。 2. 案例完整,实用性强 本书各章节中的每个实例都是编者精心设计的,针对某个特定的知识点,但又不局限于该知识点。读者在学习时,能够通过这些简单实例及时看到各个知识点的应用效果,真正做到知识的可视化。 3. 讲解翔实,循序渐进 本书紧紧围绕C++桌面应用程序的常用功能,按照Qt应用程序的开发顺序,系统全面地介绍基于Qt框架的C++桌面应用程序开发规范和流程,使读者可以在很短的时间内掌握Qt的工作原理及技术特点。 4. 重点突出,难点分散 本书以介绍Qt的框架应用技术为重点,主要介绍C++桌面应用开发中常用的UI设计和简单的业务逻辑的实现。每章突出一个技术难点,每种技术的介绍均以从应用到原理的顺序展开,让读者先看到或想到实现效果,然后激发其探究“为什么”的兴趣。 5. 由浅入深,前后呼应 Qt C++桌面应用的开发是一个基础理论知识的综合应用过程,涉及很多方面。本书实例功能的实现采用了由浅入深、逐步完善的方式,将技术难点分散于各个章节中,做到了叙述上的前后呼应、技术上的逐步加深。 6. 资源丰富,使用方便 为帮助读者学习,本书配备了全套学习及教学资源,包括教学大纲、教学课件、电子教案、教学进度表、实验指导、程序源码、在线题库、习题解答和微课视频。资源下载提示 课件等资源: 扫描封底的“课件下载”二维码,在公众号“书圈”下载。 素材(源码)等资源: 扫描目录上方的二维码下载。 在线作业: 扫描封底的作业系统二维码,登录网站在线做题及查看答案。 微课视频: 扫描封底的文泉云盘防盗码,再扫描书中相应章节的视频讲解二维码,可以在线学习。 本书可作为高等院校计算机及相关专业、软件开发培训中心等相关课程的教材或教学参考书,也可供软件开发人员进行项目开发、在校学生进行课程设计与毕业设计时参考。 本书第1~5章由马石安编写,第6~12章由魏文平编写,所有图片的配置、代码的调试由魏文平完成。全书由马石安统一修改、整理和定稿。 在本书的编写过程中参考和引用了大量的书籍、文献以及网络博客、论坛中的技术资料,在此向这些文献的作者表示衷心感谢。另外,江汉大学、清华大学出版社的领导及各位同仁对本书的编著、出版给予了大力支持与帮助,在此一并表示感谢。 由于本书内容广泛,加之编写时间仓促及编者水平有限,书中难免存在疏漏之处,敬请广大师生、读者批评指正。 编者2024年1月