前 言
“可视化程序设计”是理工科极为重要的一门专业课程,实践性很强。其教学目标是使学生掌握可视化程序设计的基本方法、编程技能并具备上机调试能力,熟悉界面设计,掌握各种常用类(有些开发工具称控件,实际也是类)的属性和方法,培养学生应用计算机编程解决实际问题的能力,为今后实际工作中进行大型工程应用软件的设计与开发打下坚实的基础。
可视化程序设计以“所见即所得”为原则,力图实现编程工作的可视化。C++语言属于编程语言中的“王者”,Qt是可视化程序设计的重要框架,是机器视觉领域的重要工具。但是,目前将C++语言和Qt编程结合,介绍可视化程序设计的图书较少。与已有的可视化程序设计图书相比,本书具有以下特色。
●通俗易懂,深入浅出。本书通过大量编程实例的程序演示、代码注释讲解及运行结果分析,语言简洁、精练、通俗易懂地介绍C++语言基础、类、对象、继承以及多态等难以掌握的概念。本书初稿经过没有编程基础的学生试读,多名教师试用,历时3年,通过反复修改,直到易懂、易教为止,可谓“数年磨一剑”。
●重点突出,循序渐进。本书针对C++语言提供多个编程实例,但不追求全面和系统,只重点介绍C++语言基础的核心和面向对象思想的精华,以求让读者尽快掌握Qt编程技术。待读者掌握面向对象的基本思想后,可继续深入学习类模板、运算符重载、向量等内容。
●实例丰富,快速上手。本书针对Qt编程提供多个程序实例,如简易计算器、多线程、数据库、网络应用编程、文件操作、基于人脸检测的多路入侵监视系统等多个应用方向,部分实例是研发实例的精简。这些实例没有一味追求实用性和全面性,尽量只讲解基本原理和操作,并添加详尽的代码注释,以便读者快速掌握。但这些程序实例具有可维护性和扩充性,可以快速扩展应用到实践中。
●资源丰富,易学易教。本书提供在Qt 6.0编程环境中编译通过的全部示例源代码、配套课件等立体式全方位资源,读者可在QQ群(764353211)中获取。
如果读者没有学习过任何编程语言,或仅有C语言基础,建议从第1章开始学习;如果读者已学习过C++语言,只想学可视化程序设计技术或Qt编程,则可在学习1.2节和1.3.1小节后,直接进入第5章的学习。本书最后提供包含Qt编程常见问题的附录,建议读者阅读。
读者如果有任何意见和反馈,请联系我们(关喜荣:836030680@qq.com;彭凌西:flyingday@139. com)。
本书第1章、第5~6章由梁志炜完成,第2~4章、第8章由关喜荣完成,第7章由彭凌西完成,第9章由唐春明完成,附录由陈统完成。在编写过程中,本书还得到了很多专家、企业人员以及师生友人的大力支持和帮助。肖忠、彭邵湖、林煜桐、郭俊婷、谢翔、黄明龙等众多老师和学生对全书进行了试读与校稿,并提出了许多宝贵的意见,让本书不仅通俗易懂,而且讲解明晰。他们认真、细致的工作让我感动。本书还得到了数据恢复四川省重点实验室、广州大学研究生院和教务处教材出版基金的大力支持,受到国家自然科学基金项目(12171114、 61772147和61100150)、广东省自然科学基金基础研究重大培育项目(2015A030308016)、国家密码管理局“十三五”国家密码发展基金项目(MMJJ20170117)、广州市教育局协同创新重大项目(1201610005)、密码科学技术国家重点实验室开放课题项目(MMKFKT201913)的资助,得到了统信软件技术有限公司、广东省机械研究所有限公司、广东轩辕网络科技股份有限公司和广州粤嵌通信科技股份有限公司等的竭诚帮助。
在本书编写过程中,我参考了互联网上众多的资料、代码、网络视频,以及其他图书,在此谨一并表示最诚挚的感谢!
感谢可爱的女儿们,你们的天真和烂漫让我的一切忧愁与烦恼烟消云散。
最后,与读者分享我在多年的计算机教学、研究过程中的体会:改变你的人生,从编程开始!
彭凌西
2021年12月