零基础学Qt4编程

qq_40153634 37 0 PDF 2019-09-26 00:09:47

零基础学Qt4编程前言终于把整部书写完了,我几乎不敚相信自己能完成,虽然仍有些遗憾。从丌始落笔到完稿,我陆陆续续写了年多,原来听说写技术书籍很辛苫,这次算是有切身体会了。写这部书的初衷其实源于我自己的经历。3年前,由于项目需要丌发跨平台的软件,经过比较,我选择了Qt作为应用程序框架,版木是Q4。但是接卜来遇到了一个困难,就是有关Qt4的书籍、资料非常少,手头仅有的齐亮翻译的《C++ GuI Qt3编程》是基」Qt3的,而Qt4相比Qt3而言,简直可以说是有了翻大覆地的变化,原有的代码都不甚兼容没有办法,我静下心来研读Qt4的文档,遇到问题吋就经常去Qt的论坛提问或参与讨论逐渐的就对Qt有了较为深入的了解。在这段时问里,自凵不仅活跃在Qt中文的各大论坛之中,还受到了朋友们的推荐,有幸成为了一些技术版块的版主。接卜来就有朋友跟我说,好好写本书,把自己理解的知识与他人分享,同时也是对自己这段学习经历的总结。我听后觉待有道理,联想到齐亮翻译的那本《C-GUIα3编程》无论是内容还是编辑、装帧都很精良,」是就贸然的给北京航空航人大学出版社编辑部打电话,由此得到了冯颍、董丽娟编辑的鼓励、支持和帮助,最终木书得以出版大家现在看到的这些内容,是我在过去一年多的时间里,反复思考、陆续整理出来的。在本书的写作过程中,我重点考虑了下面几个问题。首先,我曾经对这本书的定位迷茫过,到底什么才是初学Qt的朋友最需要掌握的内容呢。终于有一天,我想明白了,自己写作的初衷就是要使待Qt编程技术应用的门槛变得史低更容易掌握。因此在每一章甲面,我都尽量做到把某个技术点由浅入深的阐述全面,而过于复杂和艰深的内容则略去不谈。始终站在初学者的角度来编写书中内答,是我后期删改书稿的重要原则之一。其次,这里记录的技术或者实践方面的问题都曾经启发过我自己,所以我觉得它们也可能会启发他人,如果能和一些心有戚戚焉的读者朋友引起共鸣,就非常欣慰了。而另一方面,我不敢随意对Qt软件开发,甚至Qt软件开发中哪些内容更重要一些、哪些内容更需要初学者掌握做出论断。虽然我有自己的理解,但表现于具体的文字上,只好将自己觉得会非常重要的部分多写一些(比如Qt4的安装与配置等方面的内容),希望读者能够理解我的用意。还有要说明的是,本书的内容也是基于前人的基础之上的。本书的主旨之一是要和读者分享一个“过来人”的绎验。我尽量把自己学习过程中的体会向读者悉数道来,并从中归纳出一些可供遵循的东西,我想这大概就是所谓“约定俗成的方法”的含义。综观整部书,虽然参考的书籍、网站、代码数量众多,但我一直坚持这样的原则:书中的内容要建立在自己充分理解的基础上,然后再用自己的语言表达出来。我相信只有这样,读者才能够感同身受的体会Qt软件开发的基本流程。虽然书已写完,但也还是留下了一些遗憾。因为还有一些内容是我原本想要写的,它们对Qt软件开发也是至关重要的,比如软什的国际化、软件的分发和部署等等。可惜我在动于的时候,发现自己这些方面的修养在项目中用用还可以,离著书立说却差得很远,只好暂时放弃请读者相信,我是非常谨慎的米完成自己的第一本公开著作的。我真诚的尊重所有对本书提出批评和建议的朋友。大家可以给我发E-mail(norcorv@yahoo.cn),我个人比较倾向于电子邮件这种交流的方式。我愿意与大家一起分享有关Qt的知识和经验,希望能够听到大家的声音最后,虽然有些落入俗套,但我还是要衷心的感谢北京航空航天大学出版社的冯颍女士、董丽娟女士、胡晓柏先生以及其他的老师对我·如既往的关心和支持,还有每位为本书的出版付出努力的编辑朋友们。感谢远在挪威奥斯陆的齐亮,谢谢你对本书选题和内容的指导感谢我的同事们,你们对我工作上提供了很多的帮助。感谢我的父母,你们为我付出很多并且容忍我对许多事情的忽略,使我能够心无旁骛的完成自己的工作和书稿,感谢我的爱人和2岁的儿了米多,你们是我不断前进的动力。我学习Qt过程中所获得的感受,希望你也同样能得到。吴迪(wd007)2009年12月19日阅读指导Qt是跨平台应用程序和UI框架,可用来编写应用程序,无狈重新编写源代码,便可跨不同的桌面和嵌入式操作系统进行部署。自Qt4.5发布以来,秉承着 Nokia不断开发出更多令人喜爱的产品与体验的战略坦念,Q产品家族不断増添新的举措,新増的授权选择和新功能使Qt比以往更开放、更易用以及更便捷。由于Qt使用的广泛性和学习过程的复杂性,使得很多读者在开始学习吋容易陷入迷汇而不知从何处着于。作者根据知识特点和学习内容,使用最新的Qt4.5版,结合自己学习Qt的心得体会以及从事工程开发的经验,精心编著了此书。以帮助准备学习使用Qt进行开发、止在学习Qt进行工程廾发以及止在使用Qt进行工程廾发的读者少走弯路,提高学习和使用的效率。全书按照Qt知识结构的层次和读者的学习规律循序渐进、由浅入深的进行讲述。对于书中每个知识点的讲解,都力求使读者不但“知其然”,而且“知其所以然”。只有这样,才能真正让读者领会掌握知识的精髓,从而提高工程实践的能力。最后,对于书中的大部分内容都结合工程实饯给出了详细的实现代码,并且对」实战中需要注意的事项也都给出了相应的说明或提示。本书特点在本书每一章的开头都有作者指出的重点学习内容提示,几乎每一章都包含提示和注意事项来帮助你理解Qt书中大多薮章节的内容都是按照“ Stet by step”的向导式方法叙述的,便于读者在模仿中迅速掌握Qt程序设计的思路和方法。书中的每·章都包含许多精心创建的实例来帮助读者学习相关的主题,每章的结尾都有来源于实践的问题和解答,以一问一答的形式来提供更多的附加信息,而这些信息可能无法从直接阅读本书得来。最后的总结与提高部分则是对本章内容的梳理和延展,以帮助读者更快、更好的掌握Qt编程,在编著本书的同时,作者尽力用轻松现实的实例把Qt程序设计以一种简洁的方式叙述出来。本书适合的读者本书是为t程序开发人员、大中专院校相关专业的学生以及Qt爱好者编写的。本书的标题清晰的表明主要面对初学阶段的朋友。事实上,使用本书不需要有编程的经验,读者可以把本书作为学习程序设计的第一步入门教材。本书的草稿内容已经在作者带领的本科和硕士研究生中团队中作为Qt程序设计的讲义使用,效果良好。作者建议的读者群体包括:★没有编程经验,想通过学习Qt来学习程序设计的读者★掌握∫C/C++语言,想进一步学习Q绵程的读者★正在从事Qt程序开发的初级程序员★有一定的Q开发经验,想要系统的学习Qt程序设计的读者本书内容组织本书并没有覆盖Qt的全部内容,事实上Qt是如此的庞大,几乎没有一本书能够做到这点。作者根据自己的经验,筛选出了初学者需要掌握的内容,作为全书的重点。木书共分13章,以渐进的顺序,通过理论基础和实例分析详细介绍了Q开发技术应用的方法。下面分别介纽各部分的内容第1章“走近Qt”。向大家介绍Qt的起源和发展历程、Qt产品的概况、Qt开发工具的组成和功用以及Qt的最新进展等内容。其中的重点是QtA.5所带来的一系列重大变化,请读者注意在相近的方面加以对比学习,加深认识。比如LGPL协议与GPL协议的区别、商业版与开源版的不同等。第2章“Qt的安装与配置”。训述如何正确而便捷的安装和配置Qt,为下一步的应用开发打下坚实的基础。内容包括如何获取Qt、Qt的授杖和协议、在Ⅺ11平台上安装配置Qt的方法、在 Windows平台上安装配置Qt的方法、在Mac0SX平台上安装配置Qt的方法、在常见的Linx发行版上安装配置Ωt的方法以及如何配置αt的环境变量等等。安装和配置Qt是一项基木功,读者一定要牢牢掌握编译安装Qt4的方法。第3章“Ωt缤程基础”讲述与Ωt编程相关的一些基础知识和技能。内容涵盖了 Windowslinux和 Mac osⅩ这三大主流平台,包括标准C艹+的基础知识、不同平台的编程机制和原理、ⅵi编辑器的使用、GCC和GDB的使用等。由于Qt是构建于标准C++基础之上的大型类库其主要之一特性是可以方便的跨平台应用,所以掌握不同平台上的基础知识和技能是必需的。第4章“Qt4集成开发环境”上要介绍了目前Qt4的上流IDE以及它们的安装与配置的方法。正所谓“工欲善其事,必先利其器”,熟练掌握了Qt4IDE,就能为下一步的开发进程做好充分的准备。本章内容包括,常见的Qt4的IDE的大致情况、 Qt creator的安装和配置、 Eclipse与Qt4结合使用的安装步骤和配置方法、 Visual studio与t4结合使用的安装步骤和配置方法等。其中 Qt Creator的安裝与配置是读者需要掌握的重点。第5章“使用Qt基本GUI工具”。能够熟练使用Qt基本工具是一项必需的技能。本章重点讲述了 Qt Designer、 Qt Assistant以及 Qt Demo的使用方法和技巧,在Qt应用程序开发过程中,通常并不是仅仅使用某个单一的工具,而是经常需要综合使用它们,更多的经验和方法还需要读者在实践中不断的摸索和总结。第6章“Qt4程序开发方法和流程”在经过∫前面几章基础知识的学习后,大家已经打下了坚实的基础。从本章开始,我们将带领大家真正的步入Qt4应用程序的开发之旅。在这一章里面,通过 mello Qt!这个例子,向大家介绍了Qt应用程序编译运行的基本步骤,以及常见的3种方法。它们各有优缺点。如果你刚刚使用Qt,我希望你通读本章,然后把3种方法都尝试一下,重点是Qt应用的开发流程, gmake的使用以及对信号/槽的初步理解。第7章“对话框”。本章介绍了如何在Qt中创建基于对话框的应用程序。内容主要包括 DIalog类及其子类的继承关系、使用手写代码子类化 DIalog类的方法、结合QtDesigner创建对话框应用程序的方法、常见的t标准内置对话框的使用方法、模态对话框和非模态对话框的区别以及使用方法等。对话框是应用程序中最为常见的类型之一,因此读者必须熟练掌握创建对话框的基本方法和技巧。第8章“主窗口”。在本章中,我们将带领大家学习如何创建主窗口应用程序,包括菜单栏、工具栏、状态栏、动作、中心部件、锚接部件等的创建和使用。最后,将介绍创建多文档窗口的常用方法和步骤。对于多文档的应用,建议大家只要能够熟练运用本章中介绍的3种方法中的一种就可以了。第9章“t样式表与应用程序观感”。本章向大家讲述Qt样式表的使用。由于Qt样式表的引入,定制t窗口部件的外观样式变得非常简单。无论你是想仅仅修改一个现有部件的外观,还是想从零开始设计一套全新的界面风格,现在都有了一种新的方法。本章内容主要包括,设置应用程序观感的方法、样式表与 Qt designr:的集成使用方法、子类化 QStyle类的方法、不使用样式表改变应用程序观感的方法等。第10章“在程序中使用.ui文件”。本章讲解如何把.ui文件集成进Qt4⊥程里面主要内容包括,uic的使用方法、 Ui YourFormName.h文件的组成、在编详时加入处理.ui文件的方法、在运行是加入处理.ui文件的方法、信号与槽实现自动关联的方法等。这其中的重点是理解uixx.h文件的组成和功用,以及怎样根据应用程序的特点灵活的选择最适合的集成.ui文件的方法。第11章“布局管理”。布局管理是Qt程序丌发最基本的技能之·。在本章中,依次讲解了Qt中布局的基本概念和分类,基本布局的创建方法和步骤,复杂的布局如栈布局、分裂器布局等的使用方法,最后对布局管理的经验进行了总结第12章“使用 Qt creator”。 Qt creator是Qt4应用开发中的首选IDE。木章采用图文结合的形式,全面讲解了 Qt creator的使用方法和步骤。这些内容都是在项目开发中经常用到的技能,希望读者熟练掌握。第13章“癿t核心机制与原理”。信号与槽、元对象系统、事件模型是Qt机制的核心,如果您想要掌握t编程,就需要对它们冇比较深入的了解。本章重点介绍了信号与槽的基本概念和用法、儿对象系统、Qt的事件模型,以及它们在实际使用过程中应注意的一些问题附录A讲解了 qmake的常用语法,它是对书中出现的 qmake使用方法的总结附录B讲解了make命令的常用语法,熟练掌握maκe命令是很有必要的,尤其是在执行编译命令时。附录C为大家汇总∫作者收录的Qt资源,包括书籍、网站、论坛等,它们对于尽快掌操Qt知识和技能是不可或缺的。如何阅读本书本书章节的编排思路是要读者从头到尾来阅读的,对于有经验的读者也可以选取自己感兴越的内容阅读。如果你已经掌握了Qt的最新内容和安装配置的要领,前面的第13章可以不看。然而,初学Qt的读者应该阅读整部书。接下来,作者结合自己的学习经历,给读者提供一些建议。是要树立必胜的信念。读者不要在廾始学习之前就先入为主的给自凵一个“Qt不容易学”的印象。做其他的许多事情都类似,在开始的时候都要充满信心,则是不容易走远的二是要有持之以恒的精神。当然如果没有必胜的信念,也就不会有这种精神。你要相信白己的能力,在学习的道路上,你曾经克服过不少困难,现在的困难你一样能克服。只要结合止确的学习方法并坚持卜来,成功就在眼前三是要掌握必要的基础知识和技能。C++基础以及冬个平台的架构和特点等知识是必需的,它们是学习Qt的基础。在学习¢t之前,如果掌握了这些基础知识是最好的。即使没有也不用担心,本书的第3章对此进行了较为详尽的介绍,读者朋友可以进行适当的学习,不需要太深入的了解,在熟悉Qt的编程思路以后,还可以回过头来弥补这一欠缺。这些知识和技能可以在使用木书的过程中得以不断的学习和实战。四是要有好的学习教材和学习方法。好的学习教材可以使复杂的问题简单化,使人循序渐进的掌握知识。此外,正确的学习方法也是非常重要的,在吋间资源如此紧迫的现代社会,能够达到事半功倍的做法是值得提倡的。Qt包含内容很广,一般不可能从几本书中找到所有问题的答案,但只要有几本好的教材就足够了。在掌握了Qt的整体框架以后,可以慢慢的进行具体深入的学习。学习时针对性要强,不能全面铺展开来,那样容易陷入烂泥塘,或者被Qt的庞大繁杂所吓倒。五是要多泡论坛,多研究别人的代码,适当吋可以看看Qt的源码。论坛是初学者最好的“教室”,只要你热爱学习,有“打破砂锅问到底”的精神,那里就有无数热心的“老师愿意帮助你,而且还有很多优殄的代码供你亨用。此外,研究别人的代码是另外一个好习惯,在研究的基础上进行修改以使其满足自凵的需要,“他山之石,可以攻玉”六是要掌握跟踪调试技术。跟踪调试技术的重要性不言而喻。Qt库无疑是庞大的,而且它提供了自身的源代码,但是吐t斥内部的封裝也是严密而有序的。适当的使用跟踪调试技术可以让我们进入其内部,并了解其实现的思想和技巧,它的重要性由此可见一斑。总而言之,Qt的抽象性是使读者望而却步的一个重要因素,因此,跟踪调试是我们学习Qt的一项必备技术。七是要达到必要的英语水平。在学习Qt时,有一个最好的老师就是 Qt assistant,不过它是英文的。此外,还有很多优秀的论坛也是英文的。因此,若想真正的学好Qt,一定的英文水平是必需的。内容简介作者简介前言阅读指导第1章走近QL第2章Q的安装与置第3章Qu编程基础第4章Qt4集成开发环境第5章使用Qt4基本GUI工具第6章Qt4程序开发方法和流程第7章对话框第8章主窗口第9章Qt样式表与应用程序观感第10章在程序中使用ui文件第11章布局管理第12章使用 Ql Creator第13章Qt核心机制与原理附录 A qmake命令附录 B make命令附录CQt资源参考文献第1章走近Qt本章重点★了解Qt的起源和功用★了解Qt产品线以及对应的平台★了解Qt开发上具的组成和功用★掌握Qt的授权区分、服务支持★掌握Qt4.5版的最新内容1.1Qt简介首先让我们看看业界对于Qt的评论:“Qt将帮助我们为用户提供空前‘诱人’的应用程序。诺基亚对跨平台Qt库和Linuⅹ平台的一贯投入,是免费软件桌面和移动设备堆栈创新的主要驱动力。”Mark shuttleworthUbuntu项目创始人Qt是极具创新的和实用的技术。包含了 QtWebKit的Qt提供了一个强大的,跨平台的网络体验,确保∫我们的3环境所只备的身临其境的感觉。我们渴望将 QtWebkit纳入到‘ Second life‘中,从而提高在Wcb的虚拟世界的集成度。”Linden Labjoe millerLinden实验室平台与技术开发部副总裁看起来,Qt是如此的吸引人,那么就让我带您走进Qt的世界吧1.关于QtQt是一个已经形成事实上的标准的C++框架,它被用于高性能的跨平台软件开发。除了拥有扩展的CH类库以外,Qt还提供了许多可用来直接快速编写应用程序的工具。此外,Qt还具有跨平台能力并能提供国际化文持,这一切确保了Qt应用程序的市场应用范围极为广泛。自1995年以来,Qt逐步进入商业领域,它已经成为仝世界范围内数千种成功的应用程序的基础。QtC++框架一直是商业应用程序的核心。无论是跨国公司和大型组织(例如: Adobe、 Boeing、 Google、IBM、Ⅶ torola、NASA、 Skype)、还是无数小型公司和组织都在使用Qt。Qt也是流行的 Linux桌面环境KDE的基础(KDE是所有主要的Linu发行版的一个标准组件)。Qt4在新增更多强大功能的同时,旨在比先前的Q版木更易于扩展和使用。Qt的类功能全面,提供一致性接口,更易于学习使用,可减轻开发人员的工作负担、提高编程人员的效率。另外,Qt一直都是完仝面冋对象的,并且允许真正的组件

用户评论
请输入评论内容
评分:
暂无评论