logo资料库

零基础学Qt4编程(全)--吴迪.pdf

第1页 / 共519页
第2页 / 共519页
第3页 / 共519页
第4页 / 共519页
第5页 / 共519页
第6页 / 共519页
第7页 / 共519页
第8页 / 共519页
资料共519页,剩余部分请下载后查看
内容简介 作者简介 前言 阅读指导 第 1 章 走近 Qt 第 2 章 Qt 的安装与配置 第 3 章 Qt 编程基础 第 4 章 Qt 4 集成开发环境 第 5 章 使用 Qt4 基本 GUI 工具 第 6 章 Qt 4 程序开发方法和流程 第 7 章 对话框 第 8 章 主窗口 第 9 章 Qt 样式表与应用程序观感 第 10 章 在程序中使用.ui 文件 第 11 章 布局管理 第 12 章 使用 Qt Creator 第 13 章 Qt 核心机制与原理 附录 A qmake 命令 附录 B make 命令 附录 C Qt 资源 参考文献
内 容 简 介 Qt 是跨平台应用程序和 UI 框架,可用来编写应用程序,无须重新编写源代码,便可 跨不同的桌面和嵌入式操作系统进行部署。使用 Qt 开发出来的软件,已经在各行各业中得 到了越来越广泛的应用。本书内容基于最新发布的 Qt 4.5 版,共分为 13 章,按照 Qt 知识结 构的层次和读者的学习规律,循序渐进、由浅入深的对 Qt 应用程序开发进行了介绍,涵盖 了程序设计中经常涉及的内容。作者希望通过本书为想学习 Qt 编程的读者提供入门的指导, 也为从事 Qt 应用开发的读者提供帮助。 本书内容翔实,图例丰富,讲解透彻,通俗易懂,针对性强。所有实例均在 Windows 下和 Linux 操作系统下作了验证。 本书适合于从事或准备从事 Qt 应用软件开发的技术人员,可作为 Qt 应用程序开发者的 参考书,也可作为大中专院校师生的教材来使用。
作 者 简 介 吴迪,网名 wd007,大学教师。对程序设计有所领悟,熟悉 Qt 4 软件研发,开发的应 用系统曾获多个奖项,现在从事跨平台应用软件的研制与教学研究,并积极探索龙芯平台上 应用软件的构建模式。平时活跃于国内各大技术社区,在 Qt 中文论坛、Qt 核心技术网、Cute Qt 论坛、Qt 知识库等论坛担任版主。 性格开朗,兴趣广泛,国学、历史书籍常备案头,以先贤之教诲修其心,研究问题喜求 甚解,自得其乐。在闲暇时常作户外运动,尤其喜欢打篮球。 你可以通过电子邮件与他联系:qter_wd007@yahoo.cn。
前 言 终于把整部书写完了,我几乎不敢相信自己能完成,虽然仍有一些遗憾。从开始落笔到 完稿,我陆陆续续写了一年多,原来听说写技术书籍很辛苦,这次算是有切身体会了。 写这部书的初衷其实源于我自己的经历。3 年前,由于项目需要开发跨平台的软件,经 过比较,我选择了 Qt 作为应用程序框架,版本是 Qt 4。但是接下来遇到了一个困难,就是 有关 Qt 4 的书籍、资料非常少,手头仅有的齐亮翻译的《 C++ GUI Qt 3 编程》是基于 Qt3 的,而 Qt 4 相比 Qt 3 而言,简直可以说是有了翻天覆地的变化,原有的代码都不甚兼容 。 没有办法,我静下心来研读 Qt 4 的文档,遇到问题时就经常去 Qt 的论坛提问或参与讨论, 逐渐的就对 Qt 有了较为深入的了解。在这段时间里,自己不仅活跃在 Qt 中文的各大论坛之 中,还受到了朋友们的推荐,有幸成为了一些技术版块的版主。接下来就有朋友跟我说,好 好写本书,把自己理解的知识与他人分享,同时也是对自己这段学习经历的总结。我听后觉 得有道理,联想到齐亮翻译的那本《C++ GUI Qt 3 编程》无论是内容还是编辑、装帧都很精 良,于是就贸然的给北京航空航天大学出版社编辑部打电话,由此得到了冯颍、董丽娟编辑 的鼓励、支持和帮助,最终本书得以出版。 大家现在看到的这些内容,是我在过去一年多的时间里,反复思考、陆续整理出来的 。 在本书的写作过程中,我重点考虑了下面几个问题。 首先,我曾经对这本书的定位迷茫过,到底什么才是初学 Qt 的朋友最需要掌握的内容 呢。终于有一天,我想明白了,自己写作的初衷就是要使得 Qt 编程技术应用的门槛变得更低、 更容易掌握。因此在每一章里面,我都尽量做到把某个技术点由浅入深的阐述全面,而过于 复杂和艰深的内容则略去不谈。始终站在初学者的角度来编写书中内容,是我后期删改书稿 的重要原则之一。 其次,这里记录的技术或者实践方面的问题都曾经启发过我自己 ,所以我觉得它们也可 能会启发他人,如果能和一些心有戚戚焉的读者朋友引起共鸣 ,就非常欣慰了。而另一方面, 我不敢随意对 Qt 软件开发,甚至 Qt 软件开发中哪些内容更重要一些、哪些内容更需要初学 者掌握做出论断。虽然我有自己的理解,但表现于具体的文字上,只好将自己觉得会非常重 要的部分多写一些(比如 Qt 4 的安装与配置等方面的内容),希望读者能够理解我的用意。 还有要说明的是,本书的内容也是基于前人的基础之上的。本书的主旨之一是要和读者 分享一个“过来人”的经验。我尽量把自己学习过程中的体会向读者悉数道来,并从中归纳 出一些可供遵循的东西,我想这大概就是所谓 “约定俗成的方法”的含义。综观整部书,虽 然参考的书籍、网站、代码数量众多,但我一直坚持这样的原则:书中的内容要建立在自己 充分理解的基础上,然后再用自己的语言表达出来。我相信只有这样,读者才能够感同身受 的体会 Qt 软件开发的基本流程。 虽然书已写完,但也还是留下了一些遗憾。因为还有一些内容是我原本想要写的,它们
对 Qt 软件开发也是至关重要的,比如软件的国际化、软件的分发和部署等等。可惜我在动手 的时候,发现自己这些方面的修养在项目中用用还可以,离著书立说却差得很远,只好暂时 放弃。 请读者相信,我是非常谨慎的来完成自己的第一本公开著作的 。我真诚的尊重所有对本 书提出批评和建议的朋友。大家可以给我发 E-mail(norcory@yahoo.cn),我个人比较倾向于 电子邮件这种交流的方式。我愿意与大家一起分享有关 Qt 的知识和经验,希望能够听到大家 的声音。 最后,虽然有些落入俗套,但我还是要衷心的感谢北京航空航天大学出版社的冯颍女士 、 董丽娟女士、胡晓柏先生以及其他的老师对我一如既往的关心和支持,还有每一位为本书的 出版付出努力的编辑朋友们。感谢远在挪威奥斯陆的齐亮,谢谢你对本书选题和内容的指导。 感谢我的同事们,你们对我工作上提供了很多的帮助。感谢我的父母,你们为我付出很多, 并且容忍我对许多事情的忽略,使我能够心无旁骛的完成自己的工作和书稿,感谢我的爱人 和 2 岁的儿子米多,你们是我不断前进的动力。 我学习 Qt 过程中所获得的感受,希望你也同样能得到。 吴迪(wd007) 2009 年 12 月 19 日
阅读指导 Qt 是跨平台应用程序和 UI 框架,可用来编写应用程序,无须重新编写源代码,便可 跨不同的桌面和嵌入式操作系统进行部署。自 Qt 4.5 发布以来,秉承着 Nokia 不断开发出 更多令人喜爱的产品与体验的战略理念,Qt 产品家族不断增添新的举措,新增的授权选择 和新功能使 Qt 比以往更开放、更易用以及更便捷。 由于 Qt 使用的广泛性和学习过程的复杂性,使得很多读者在开始学习时容易陷入迷茫 而不知从何处着手。作者根据知识特点和学习内容,使用最新的 Qt 4.5 版,结合自己学习 Qt 的心得体会以及从事工程开发的经验,精心编著了此书。以帮助准备学习使用 Qt 进行开 发、正在学习 Qt 进行工程开发以及正在使用 Qt 进行工程开发的读者少走弯路,提高学习和 使用的效率。 全书按照 Qt 知识结构的层次和读者的学习规律循序渐进、由浅入深的进行讲述。对于 书中每个知识点的讲解,都力求使读者不但“知其然”,而且“知其所以然”。只有这样,才 能真正让读者领会掌握知识的精髓,从而提高工程实践的能力。最后,对于书中的大部分内 容都结合工程实践给出了详细的实现代码,并且对于实践中需要注意的事项也都给出了相应 的说明或提示。 本书特点 在本书每一章的开头都有作者指出的重点学习内容提示,几乎每一章都包含提示和注意 事项来帮助你理解 Qt。 书中大多数章节的内容都是按照“Stet by Step”的向导式方法叙述的,便于读者在模 仿中迅速掌握 Qt 程序设计的思路和方法。 书中的每一章都包含许多精心创建的实例来帮助读者学习相关的主题,每一章的结尾都 有来源于实践的问题和解答,以一问一答的形式来提供更多的附加信息,而这些信息可能无 法从直接阅读本书得来。最后的总结与提高部分则是对本章内容的梳理和延展,以帮助读者 更快、更好的掌握 Qt 编程。 在编著本书的同时,作者尽力用轻松现实的实例把 Qt 程序设计以一种简洁的方式叙述 出来。 本书适合的读者 本书是为 Qt 程序开发人员、大中专院校相关专业的学生以及 Qt 爱好者编写的。本书的 标题清晰的表明主要面对初学阶段的朋友。事实上,使用本书不需要有编程的经验,读者可 以把本书作为学习程序设计的第一步入门教材。本书的草稿内容已经在作者带领的本科和硕 士研究生中团队中作为 Qt 程序设计的讲义使用,效果良好。 作者建议的读者群体包括: ★ 没有编程经验,想通过学习 Qt 来学习程序设计的读者 ★ 掌握了 C/C++语言,想进一步学习 Qt 编程的读者 ★ 正在从事 Qt 程序开发的初级程序员 ★ 有一定的 Qt 开发经验,想要系统的学习 Qt 程序设计的读者 本书内容组织
本书并没有覆盖 Qt 的全部内容,事实上 Qt 是如此的庞大,几乎没有一本书能够做到这 一点。作者根据自己的经验,筛选出了初学者需要掌握的内容,作为全书的重点。 本书共分 13 章,以渐进的顺序,通过理论基础和实例分析详细介绍了 Qt 开发技术应用 的方法。下面分别介绍各部分的内容。 第 1 章“走近 Qt”。向大家介绍 Qt 的起源和发展历程、Qt 产品的概况、Qt 开发工具的 组成和功用以及 Qt 的最新进展等内容。其中的重点是 Qt 4.5 所带来的一系列重大变化,请 读者注意在相近的方面加以对比学习,加深认识。比如 LGPL 协议与 GPL 协议的区别、商业 版与开源版的不同等。 第 2 章“Qt 的安装与配置”。讲述如何正确而便捷的安装和配置 Qt,为下一步的应用 开发打下坚实的基础。内容包括如何获取 Qt、Qt 的授权和协议、在 X11 平台上安装配置 Qt 的方法、在 Windows 平台上安装配置 Qt 的方法、在 Mac OS X 平台上安装配置 Qt 的方法、 在常见的 Linux 发行版上安装配置 Qt 的方法以及如何配置 Qt 的环境变量等等。安装和配置 Qt 是一项基本功,读者一定要牢牢掌握编译安装 Qt 4 的方法。 第 3 章“Qt 编程基础”。讲述与 Qt 编程相关的一些基础知识和技能。内容涵盖了 Windows、 Linux 和 Mac OS X 这三大主流平台,包括标准 C++的基础知识、不同平台的编程机制和原理、 Vi 编辑器的使用、GCC 和 GDB 的使用等。由于 Qt 是构建于标准 C++基础之上的大型类库, 其主要之一特性是可以方便的跨平台应用,所以掌握不同平台上的基础知识和技能是必需 的。 第 4 章“Qt4 集成开发环境”。主要介绍了目前 Qt 4 的主流 IDE 以及它们的安装与配置 的方法。正所谓“工欲善其事,必先利其器”,熟练掌握了 Qt4 IDE,就能为下一步的开发 进程做好充分的准备。本章内容包括,常见的 Qt4 的 IDE 的大致情况、Qt Creator 的安装 和配置、Eclipse 与 Qt 4 结合使用的安装步骤和配置方法、Visual Studio 与 Qt 4 结合使 用的安装步骤和配置方法等。其中 Qt Creator 的安装与配置是读者需要掌握的重点。 第 5 章“使用 Qt 基本 GUI 工具”。能够熟练使用 Qt 基本工具是一项必需的技能。本章 重点讲述了 Qt Designer、Qt Assistant 以及 Qt Demo 的使用方法和技巧,在 Qt 应用程序 开发过程中,通常并不是仅仅使用某个单一的工具,而是经常需要综合使用它们,更多的经 验和方法还需要读者在实践中不断的摸索和总结。 第 6 章“Qt 4 程序开发方法和流程”。在经过了前面几章基础知识的学习后,大家已经 打下了坚实的基础。从本章开始,我们将带领大家真正的步入 Qt 4 应用程序的开发之旅。 在这一章里面,通过 Hello Qt!这个例子,向大家介绍了 Qt 应用程序编译运行的基本步骤, 以及常见的 3 种方法。它们各有优缺点。如果你刚刚使用 Qt,我希望你通读本章,然后把 3 种方法都尝试一下,重点是 Qt 应用的开发流程,qmake 的使用以及对信号/槽的初步理解。 第 7 章“对话框”。 本章介绍了如何在 Qt 中创建基于对话框的应用程序。内容主要包 括 QDialog 类及其子类的继承关系、使用手写代码子类化 QDialog 类的方法、结合 Qt Designer 创建对话框应用程序的方法、常见的 Qt 标准内置对话框的使用方法、模态对话框 和非模态对话框的区别以及使用方法等。对话框是应用程序中最为常见的类型之一,因此读 者必须熟练掌握创建对话框的基本方法和技巧。 第 8 章“主窗口”。 在本章中,我们将带领大家学习如何创建主窗口应用程序,包括菜 单栏、工具栏、状态栏、动作、中心部件、锚接部件等的创建和使用。最后,将介绍创建多 文档窗口的常用方法和步骤。对于多文档的应用,建议大家只要能够熟练运用本章中介绍的 3 种方法中的一种就可以了。 第 9 章“Qt 样式表与应用程序观感”。本章向大家讲述 Qt 样式表的使用。由于 Qt 样式
表的引入,定制 Qt 窗口部件的外观样式变得非常简单。 无论你是想仅仅修改一个现有部件 的外观,还是想从零开始设计一套全新的界面风格,现在都有了一种新的方法。本章内容主 要包括,设置应用程序观感的方法、样式表与 Qt Designr 的集成使用方法、子类化 QStyle 类的方法、不使用样式表改变应用程序观感的方法等。 第 10 章“在程序中使用.ui 文件”。 本章讲解如何把.ui 文件集成进 Qt 4 工程里面。 主要内容包括,uic 的使用方法、Ui_YourFormName.h 文件的组成、在编译时加入处理.ui 文件的方法、在运行是加入处理.ui 文件的方法、信号与槽实现自动关联的方法等。这其中 的重点是理解 ui_xxx.h 文件的组成和功用,以及怎样根据应用程序的特点灵活的选择最适 合的集成.ui 文件的方法。 第 11 章“布局管理”。 布局管理是 Qt 程序开发最基本的技能之一。在本章中,依次讲 解了 Qt 中布局的基本概念和分类,基本布局的创建方法和步骤,复杂的布局如栈布局、分 裂器布局等的使用方法,最后对布局管理的经验进行了总结。 第 12 章“使用 Qt Creator”。 Qt Creator 是 Qt 4 应用开发中的首选 IDE。本章采用 图文结合的形式,全面讲解了 Qt Creator 的使用方法和步骤。这些内容都是在项目开发中 经常用到的技能,希望读者熟练掌握。 第 13 章“Qt 核心机制与原理”。 信号与槽、元对象系统、事件模型是 Qt 机制的核心, 如果您想要掌握 Qt 编程,就需要对它们有比较深入的了解。本章重点介绍了信号与槽的基 本概念和用法、元对象系统、Qt 的事件模型,以及它们在实际使用过程中应注意的一些问 题。 附录 A 讲解了 qmake 的常用语法,它是对书中出现的 qmake 使用方法的总结。 附录 B 讲解了 make 命令的常用语法,熟练掌握 make 命令是很有必要的,尤其是在执行 编译命令时。 附录 C 为大家汇总了作者收录的 Qt 资源,包括书籍、网站、论坛等,它们对于尽快掌 握 Qt 知识和技能是不可或缺的。 如何阅读本书 本书章节的编排思路是要读者从头到尾来阅读的,对于有经验的读者也可以选取自己感 兴趣的内容阅读。如果你已经掌握了 Qt 的最新内容和安装配置的要领,前面的第 1-3 章可 以不看。然而,初学 Qt 的读者应该阅读整部书。 接下来,作者结合自己的学习经历,给读者提供一些建议。 一是要树立必胜的信念。读者不要在开始学习之前就先入为主的给自己一个“Qt 不容 易学”的印象。做其他的许多事情都类似,在开始的时候都要充满信心,否则是不容易走远 的。 二是要有持之以恒的精神。当然如果没有必胜的信念,也就不会有这种精神。你要相信 自己的能力,在学习的道路上,你曾经克服过不少困难,现在的困难你一样能克服。只要结 合正确的学习方法并坚持下来,成功就在眼前。 三是要掌握必要的基础知识和技能。C++基础以及各个平台的架构和特点等知识是必需 的,它们是学习 Qt 的基础。在学习 Qt 之前,如果掌握了这些基础知识是最好的。即使没有 也不用担心,本书的第 3 章对此进行了较为详尽的介绍,读者朋友可以进行适当的学习,不 需要太深入的了解,在熟悉 Qt 的编程思路以后,还可以回过头来弥补这一欠缺。这些知识 和技能可以在使用本书的过程中得以不断的学习和实践。 四是要有好的学习教材和学习方法。好的学习教材可以使复杂的问题简单化,使人循序 渐进的掌握知识。此外,正确的学习方法也是非常重要的,在时间资源如此紧迫的现代社会,
分享到:
收藏