基本信息
- 原书名:C++ GUI Programming with Qt 4 (2nd Edition)
- 原出版社: Prentice Hall PTR
- 作者: (加)Jasmin Blanchette (英)Mark Summerfield
- 译者: 闫锋欣 曾泉人 张志强
- 出版社:电子工业出版社
- ISBN:9787121070389
- 上架时间:2008-8-29
- 出版日期:2008 年8月
- 开本:16开
- 页码:492
- 版次:2-1
- 所属分类:计算机 > 软件与程序设计 > C++ > C++
编辑推荐
详细讲述了用最新的Qt版本进行图形用户界面应用程序开发的各个方面.
适合对Qt编程感兴趣的程序员以及广大计算机编程爱好者阅读,也可作为相关机构的培训教材。
内容简介
目录
第1章 Qt入门
第2章 创建对话框
第3章 创建主窗口
第4章 实现应用程序的功能
第5章 创建自定义窗口部件
第二部分 Qt中级
第6章 布局管理
第7章 事件处理
第8章 二维图形
第9章 拖放
第10章 项视图类
第11章 容器类
第12章 输入与输出
第13章 数据库
第14章 多线程
第15章 网络
第16章 XML
第17章 提供在线帮助
第三部分 Qt高级
译者序
Qt具有功能强大的在线帮助文档系统。利用它,只需轻点鼠标或者简单敲击几下键盘,就可以轻易制作出简单的“HelloWorld”欢迎对话框,或者甚至是更为复杂的电子制表软件系统。这一点,在众多的软件帮助文档系统中并不多见。然而,帮助文档系统毕竟是以为用户提供实用的类库参考为主要目的的,也就是说,它主要是为用户提供准确的“可以如何做”的信息。这对于喜欢举一反三的程序设计人员来说,显然远远不够,因为我们更喜欢知道“为什么要这么做”。
本书围绕如何使用Qt编写图形用户界面程序这一中心,并尽可能多地采用手写代码的方式,生动、全面而又深刻地阐明了Qt程序的设计理念。当然,在本书以及上一版本相继出版的几年中,Qt已经由一个简单的图形工具包演变成长为具有事实标准意义的应用程序开发框架。如今,蓬勃发展的KDE桌面环境和诺基亚公司对奇趣科技公司的收购,进一步展示了Qt的无限发展潜力和令人期待的远景。
本书作为“C++GUIProgrammingwithQt4”的第二版,在充分讲述Qt4.x新特性的同时,又较好地延续了第一版的风格。全书仍由四部分构成,第一部分按照循序渐进、由浅人深的原则,介绍了使用Qt编写图形用户界面应用程序时所需的基本概念,并对这些基础知识安排了对应的实践训练,使读者仅利用这一部分知识就足以写出实用的图形用户界面应用程序。第二部分进一步深入介绍了Qt中的一些重要知识,如事件处理、拖放操作、项视图、多线程等。第三部分提供了更为专业和高级的内容,如三维图形、创建插件和应用程序脚本等。如果您已经较好地掌握了Qt的基础知识,那么完全可以像使用一本实用参考书一样以任意的顺序阅读第二部分和第三部分中的章节。第四部分由数个附录构成,分别介绍了Qt的获取和安装、Qt应用程序的构建、QtJambi和C++的基础知识,它们可以帮助您更充分地使用Qt。..
正如PrenticeHall开源软件开发系列丛书主编之一的Arnold Robbins所说的那样,“这的确是一本好书”。首先,本书是由奇趣科技公司推出的关于Qt的官方书籍,也是该公司新员工的培训教材。当然,这只能算作一个佐证而已。其次,作者在介绍Qt程序设计中的很多关键内容时,不仅详细阐述了各种基本概念和底层背景知识,而且还对编程实践中的技巧和理论知识做了充分说明,它们是开发其他程序时可供借鉴的宝贵经验,这也使得本书成为一部很有价值的软件技术书籍。
在本书的翻译过程中,首先要感谢齐亮所做的巨大贡献。当我们在2006年联系他并且希望与他合译本书的第一版时,他就慷慨地接受了。几经辗转,当我们终于得到授权可以翻译第二版(也就是本书)时,他秉持无私的开源精神,无偿奉献了《C++GUIQt 3编程》一书的电子版源文件以及第一版的部分译稿草稿,从而大大提高了翻译进度。齐亮作为国内Qt技术的布道者、执著而无私的开源技术人员(他是KDE开源项目的主要成员之一),值得我们每一个人学习。
本书翻译工作的具体分工是:西北工业大学的闫锋欣翻译了本书的第1-7、18、21、23章以及附录A、附录D、前言和致谢等部分;曾泉人翻译了第9-17章;奇趣科技公司北京分公司的张志苎工程师翻译了本书的第8、19、20、22、24章以及附录B和附录C。我们还邀请了西安欧亚学院的周莉娜和赵延兵两位老师作为本书的外部审稿人,他们的细致和耐心,为我们的工作增色不少。此外,参与本书文字校对工作的还有:西北工业大学的陆达方和丁士鹏先生,西安建筑科技大学的赵国锋硕士。还要感谢西北工业大学的张延超博士,他完成了本书第一版的审校工作。
为了更充分地使用本书,您除了可以访问原书的站点http://www.informit.com/title/0132354160外,还可以访问本书的中文站点http://www.qtcn.org/gpq4/。在这些地方,您不仅可以下载到与本书配套的示例程序,还可以与各位专业人士一起讨论Qt的相关技术问题。这里要特别说明的是,非常感谢www.qtcn.org的网站负责人白建平(XChinux)先生,正是他才让本书得以在最为专业的Qt技术网站亡占有一席之地。
由于译者水平有限,加之时间仓促,译稿中难免有曲解或误解作者原意的地方,望读者谅解并批评指正。同时,如果您有什么好的建议,可以随时在http://www.qtcn.org/gpq4/上以留言的方式告诉我们。...
译者
2008年5月
前言
那么,是什么让程序员喜欢某种技术而放弃另外一种呢?就我而言,我认为软件工程师们喜欢某种技术,是因为他们觉得这种技术是合适的,但是这也会让他们讨厌所有那些他们觉得不合适的其他技术。除此之外,我们还能解释下面的这些情况吗?例如,一些最出众的程序员需要在帮助之下才能编写出一个录像机程序,或者又比如,似乎大多数工程师在操作本公司的电话系统时总会遇到麻烦。我虽然善于记住随机数字和指令的序列,但是如果将其比作用于控制我的应答系统所需要的条件来说,则可能一条也不具备。在奇趣科技公司,我们的电话系统要求在拨打其他人的分机号码前,一定要按住“*”键2秒后才允许开始拨号。如果忘记了这样做而是直接拨打分机号码,那么就不得不再重新拨一遍全部的号码。为什么是“*”键而不是“#”键、“1”键或者“5”键?或者为什么不是20个电话键盘中的其他任何一个呢?又为什么是2秒,而不是1秒、3秒或者1.5秒呢?问题到底出在哪里?我发现电话很气人,所以我尽可能不去使用它。没有人喜欢总是去做一些不得不做的随机事情,特别是当这些随机事情显然只出现在同样随机的情况下的时候,真希望自己从来都没有听到过它。
编程很像我们正在使用的电话系统,并且要比它还糟糕。而这正是Qt所要解决的问题。Qt与众不同。一方面,Qt很有意义;另一方面,Qt颇具趣味性。Qt可以让您把精力集中在您的任务上。当Qt的首席体系结构设计师面对一个问题的时候,他们不是寻求一个好的、快速的或者最简便的解决方案,而是在寻求一个恰当的解决方案,然后将其记录在案。应当承认,他们犯下了一些错误,并且还要承认的是,他们的一些设计决策没有通过时间的检验,但是他们确实做出了很多正确的设计,并且那些错误的设计应当而且也是能够进行改正的。看一看最初设计用于构建Windows 95和UNIXMotif之间的桥梁系统,到后来演变为跨越Windows Vista、Mac OS X和GNU/Linux以及那些诸如移动电话等小型设备在内的统一的现代桌面系统,这些事实就足以证明这一点。..
早在Qt大受欢迎并且被广泛使用很久以前,正是Qt的开发人员为寻求恰当的解决方案所做出的贡献才使Qt变得与众不同。其贡献之大,至今仍然影响着每一个对Qt进行开发和维护的人。对我们而言,研发Qt是一种使命和殊荣。能够使您的职业生涯和开源生活变得更为轻松和更加有趣,这让我们倍感自豪。
人们乐于使用Qt的诸多原因之一是它的在线帮助文档,但是该帮助文档的主要目的是集中介绍个别的类,而很少讲述应当如何构建现实世界中那些复杂的应用程序。这本好书填补了这一缺憾,它展示了Qt所提供的东西,如何使用“Qt的方式”进行Qt编程,以及如何充分地利用Qt。本书将指导C++、Java或者C#程序员进行Qt编程,并且提供了丰富详实的资料来使他们成长为老练的Qt程序员。这本书包含了很多很好的例子、建议和说明——并且,该书也是我们对那些新加入公司的程序员们进行培训的入门教材。
如今,已有大量的商业或者免费的Qt应用程序可以购买或者下载,其中的一些专门用于特殊的高端市场,其他一些则面向大众市场。看到如此多的应用程序都是基于Qt构建而成的,这使我们充满了自豪感,并且还激励我们要让Qt变得更好。相信在这本书的帮助下,将会前所未有地出现更多的、质量更高的Qt应用程序。...
Matthias Ettrich
德国,柏林
2007年11月
序言
本书的目标就是教您如何使用Qt4来编写图形用户界面程序。本书从“Hello Qt”开始,然后很快地转移到更高级的话题中,如自定义窗口部件的创建和拖放功能的提供等。通过本书的互联网站点(http://www.infonnit.com/tifie/0132354160),您可以下载到一些作为本书文字补充材料的示例程序。附录A说明了如何下载和安装这些软件,其中包括一个用于Windows的C++免费编译器。
本书分为四部分。第一部分涵盖了在使用Qt编写图形用户界面应用程序时所必需的全部基本概念和练习。仅掌握这一部分中所蕴含的知识就足以写出实用的图形用户界面应用程序。第二部分进一步深人介绍了Qt的一些重要主题,第三部分则提供了更为专业和高级的材料。您可以按任意顺序阅读第二部分和第三部分中的章节,但这是建立在您对第一部分中的内容非常熟悉的基础之上的。第四部分包括数个附录,附录B说明了如何构建Qt应用程序,附录C则介绍了QtJambi,它是Java版的Qt。
本书的第一版建立在Qt 3版本的基础上,尽管已通过全书修订来反映那些很好的Qt4编程技术,但本书还是根据Qt4的模型/视图结构、新的插件框架、使用Qt/Embedded Linux进行嵌入式编程等内容而引入了一些新的章节和一个新的附录。作为第二版,本书充分利用了Qt 4.2和Qt4.3中引人的新特性对其进行了彻底更新,并包含“自定义外观”和“应用程序脚本”两个新的章以及两个新的附录。原有的“图形”一章已经拆分为“二维”和“三维”两章,在它们中间,涵盖了新的图形视图类和QPainter的OpenGL后端实现。此外,在数据库、XML和嵌入式编程等几章中,还添加了许多新内容。
与本书的前两版一样,这一版的重点放在如何进行Qt编程的说明和许多真实例子的提供上,而不是对丰富的Qt在线文档的简单拼凑和总结。因为本书纯粹讲授的是Qt4编程中的原理和实践知识,因而读者能够轻松学会将要出现在Qt4.4、Qt4.5以及Qt4.x等后续版本中的15个Qt新模块。如果您正在使用的Qt版本恰好是这些后续版本中的一个,那么当然要阅读一下参考文档中的“What’sNewinQt4.x”一章,以便可以对那些可用的新特性有一个总体把握。..
在写作本书的时候,是假定您已经具备了C++、Java或者C#的基本知识。本书中的例子代码使用的是C++中的一个子集,从而避免了很多在Qt编程中极少使用的C++特性。在某些不可避免而必须使用C++高级结构的地方,会在使用时对其做出必要的解释。如果您对Java或者C#已经非常熟悉但是对C++还知之不多甚至一无所知,那么建议您先阅读附录D。附录D提供了对C++较为充分的介绍,从而能够让您具有使用本书所必备的C++知识。对于C++中的面向对象编程更为全面的介绍,建议您阅读由P.J.Deitel和H.M.Deitel编著的“C++ How to Program”(Prentice Hall,2007),以及由Stanley B.Lippman、Josee Laioie和Barbara E.Moo编著的“C++Primer”(Addison-Wesley,2005)这两本书。
Qt以其作为一个跨平台框架而著称,但由于Qt拥有直观、强大的APl(应用程序编程接口),很多公司更愿意把Qt用于单一平台的软件开发上。Adobe PhotoShop Album就是用Qt编写的面向大众市场的Windows应用程序中的一个例子。纵向市场中很多功能完善的软件系统,如三维动画工具、数字电影处理软件、自动化电路设计系统(用于芯片设计)、油气资源勘探、金融服务以及医学成像等,都可以基于Qt构建而成。如果您正是一名通过Qt成功编写Windows产品来谋求发展的人,那么只需通过重新编译您的产品,就可以轻松地在Mac OS X和Linux世界中开拓出新的市场。
可以基于多种许可协议获得Qt的使用权。如果想构建商业应用程序,那么必须从奇趣科技公司购买一个Qt的商业许可协议。但如果只想构建一些开源程序,那么就可以使用基于GPL的Qt开源版本。KDE和多数开源应用程序都是基于这种模式并使用Qt构建起来的。
除了Qt的数百个类之外,还有很多扩展Qt应用范围和功能的其他软件。其中的一些产品,像Qt Solutions中的一些组件,都可以从该公司获得。同时,还有其他很多软件由另外一些公司或者开源社区提供。对于可用的Qt额外软件的列表清单,可以查阅http://www.trolltech.com/products/qt/3rdparty/。奇趣科技公司的开发人员也有他们自己的网站,这就是Trolhech实验室(TrolhechLabs,http://labs.trolltech.com/),他们会把自己写的一些用于娱乐方面的、有趣的或者是有用的非官方代码放在那里。Qt还建立了一个维护良好并且内容丰富的用户社区,用户可以通过Qt兴趣邮件列表来进行交流,详细情况请参阅hup://lists.trolhech.com/。
如果您在本书中发现了任何错误、对下一版有任何建议或者想反馈意见,我们将非常高兴收到您的邮件,邮件请发送到qt-book@trolltech.com。...
书摘
第1章Qt入门
这一章介绍了如何把基本的C++知识与Qt所提供的功能组合起来创建一些简单的图形用户界面(Graphical User Interface,GUI)应用程序。在这一章中,还引入了Qt中的两个重要概念:一个是“信号和槽”,另一个是“布局”。第2章还将对它们做进一步的阐述,而第3章将着手创建一个具有真正意义的应用程序。
……