零基础学QT4编程.pdf
《零基础学QT4编程.pdf》由会员分享,可在线阅读,更多相关《零基础学QT4编程.pdf(498页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 1 1 章章 走近走近 QtQt本章重点本章重点 了解 Qt 的起源和功用 了解 Qt 产品线以及对应的平台 了解 Qt 开发工具的组成和功用 掌握 Qt 的授权区分、服务支持 掌握 Qt4.5 版的最新内容1.11.1 QtQt 简介简介首先让我们看看业界对于 Qt 的评论:“Qt 将帮助我们为用户提供空前诱人的应用程序。诺基亚对跨平台 Qt 库和Linux 平台的一贯投入,是免费软件桌面和移动设备堆栈创新的主要驱动力。”Mark Shuttleworth,Ubuntu 项目创始人“Qt 是极具创新的和实用的技术。包含了 QtWebKit 的 Qt 提供了一个强大的,跨平台的网络体验,
2、确保了我们的 3D 环境所具备的身临其境的感觉。我们渴望将 QtWebkit 纳入到Second Life中,从而提高在 Web 上的虚拟世界的集成度。”Linden LabJoe Miller,Linden 实验室平台与技术开发部副总裁看起来,Qt 是如此的吸引人,那么就让我带您走进 Qt 的世界吧。1.1.关于关于 QtQtQt 是一个已经形成事实上的标准 的 C+框架,它被用于高性能的跨平台软件开发。除了拥有扩展的 C+类库以外,Qt 还提供了许多可用来直接快速编写应用程序的工具。此外,Qt 还具有跨平台能力并能提供国际化支持,这一切确保了 Qt 应用程序的市场应用范围极为广泛。自 19
3、95 年以来,Qt 逐步进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。Qt C+框架一直是商业应用程序的核心。无论是跨国公司和大型组织(例如:Adobe、Boeing、Google、IBM、Motorola、NASA、Skype)、还是无数小型公司和组织都在使用 Qt。Qt 也是流行的 Linux 桌面环境 KDE 的基础(KDE 是所有主要的 Linux发行版的一个标准组件)。Qt4 在新增更多强大功能的同时,旨在比先前的 Qt 版本更易于扩展和使用。Qt 的类功能全面,提供一致性接口,更易于学习使用,可减轻开发人员的工作负担、提高编程人员的效率。另外,Qt 一直都是完全面
4、向对象的,并且允许真正的组件编程。Qt 软件前身为 Trolltech(奇趣科技),2008 年 6 月被诺基亚收购。更多关于 QtSoftware 的信息,请访问网站 。下面是 Qt4 的 Logo,Qt 通常以清新的绿色作为自己的宣传色,图中中间区域是一个大写的 Q 字母,里面斜向嵌入了大写的 T 字母,在右上角表明了 Qt 的版本。图 1-1 Qt4 的 Logo2.2.关于关于 TrolltechTrolltech(奇趣科技)(奇趣科技)Trolltech 是由 Haavard Nord(执行总裁)和 Eirik Chambe-Eng(总裁)于 1994 年创立的,2008 年 6 月
5、被 NOKIA 收购。过去十几年来,Trolltech 的销售业绩持续增长。Trolltech 采取了成功的双重授权战略,为开发者提供商业和免费软件的授权使用。它的创始人秉持财富共享的理念,已捐献出 Trolltech 公司 5的资产给慈善基金会。它拥有遍布全球 60 个国家的 4400 个客户,其中包括 Adobe,IBM(国际商用机器公司),Sharp(夏普)、Siemens(西门子)以及其他全球知名公司。目前,拥有来自 17 个不同国家的雇员。Trolltech 公司的总部位于挪威的奥斯陆,并在澳大利亚的布里斯班,中国北京及美国加利福尼亚的帕洛阿尔托设有办事处。3.3.关于关于 Noki
6、a(Nokia(诺基亚诺基亚)诺基亚是移动世界的全球领先者,引领着互联网及通信融合产业的转型与发展。凭借多样化的移动终端产品、软件与服务,诺基亚为人们带来了音乐、导航、视频、电 视、影像、游戏、移动商务等丰富体验。面向用户的互联网服务的发展以及企业解决方案和软件业务的增长是诺基亚发展的重点。此外,诺基亚还通过诺基亚西门子通信公司为通信网络提供设备、解决方案和服务。4.4.QtQt 支持的平台(以支持的平台(以 4.54.5 版为准)版为准)Qt4.5 可提供于下列平台:Windows(Microsoft Windows Vista,XP,2000,2003,NT4,Me/98)WinCE Ma
7、c(Mac OS X)X11(Linux,Solaris,HP-UX,IRIX,AIX,.以及其他 UNIX 系统)Embedded Linux表 1-1 所示为 Qt4.5 支持的平台和编译器的详细情况,表 1-2 为 Qt4.5 不支持的平台和编译器的详细情况。表 1-1 Qt4.5 支持的平台情况软件平台硬件架构Makespec编译器Microsoft WindowsIntel 32/64-bitwin32-g+,win32-icc,win32-msvc2003,win32-msvc2005win32-msvc2008GCC 3.4.2(MinGW)(32-bit),Intel icc,
8、MSVC 2003,MSVC 2005(32 and 64-bit),MSVC 2008Windows CEIntel 32-bit,ARMv4i,MIPSWince-msvc2005,wince-msvc2008Visual Studio 2005Visual Studio 2008Linux(32 and 64-bit)Intel 32/64-bit,Itanium,MIPSLinux-g+linux-icclinux-icc-32linux-icc-64GCC 3.3,GCC 3.4,GCC 4.0,GCC 4.1,4.2,4.3Embedded LinuxARM,Intel 32-bi
9、t,MIPS,PowerPCqws/linux-arm-g+,qws/linux-x86-g+,qws/linux-g+GCC 3.4,GCC 4.1,GCC 4.2,GCC 4.3Apple Mac OS X(32-bit)Intel 32/64-bit,PowerPCMacx-g+macx-g+42GCC 4.0.1,GCC 4.2SolarisSPARC,Intel 32-bitSolaris-ccsolaris-g+Sun CC 5.5GCC 3.4.2AIXPowerPCAix-xlcaix-xlc-64xlC 6HPUXPA/RISC,ItaniumHpux-acchpux-g+h
10、pux-g+-64hpuxi-accA.03.57(aCC 3.57)GCC 3.4.4A.06.10(aCC 6.10)表 1-2 Qt4.5 不支持的平台情况软件平台硬件架构Makespec编译器Windows XP/VistaIntel 32/64-bitwin32-msvcVisual C+6.0Windows XP/VistaIntel 32/64-bitwin32-msvc2002Visual Studio 2002Windows XP/VistaIntel 32/64-bitwin32-Visual Studio 2002IRIXMIPSirix-ccMIPS ProIRIXMI
11、PSirix-g+GCC 3.31.21.2 QtQt 纪事概览纪事概览 Qt Software 前身为 Trolltech(奇趣科技),Trolltech 始创于 1994 年 1996 年 Qt 上市 Qt 已成为数以万计的商业和开源应用程序的基础 Qt 的软件授权机制具有经受市场检验的双重授权(开源与商业)模式 Trolltech 于 2008 年 6 月被 Nokia 收购,加速了其跨平台开发战略阅读材料:阅读材料:QtQt 简史简史Qt 工具包最初是在 1995 年 5 月变为公众可用的。它最初由 Haavard Nord(Trolltech的 CEO)和 Eirik Chambe-
12、Eng(Trolltech 的总裁)开发。Haavard 和 Eirik 是在位于挪威特隆赫姆的挪威科技学院相识的,在那里他们都获得了计算机科学硕士学位。Havvard 对 C+图形用户界面开发的兴趣始于 1988 年,当时他被一家瑞典公司委托设计并且开发一个 C+图形用户界面工具包。几年后,在 1990 年夏天,Havvard 和 Eirik 因为一个超声波图像方面的 C+数据库应用程序在一起工作。这个系统要求能够在 Unix、Macintosh 和 Windows 上都能运行。那个夏天中的一天,Haavard 和 Eirik 出去散步享受阳光。当他们坐在公园的一个长椅上,Haavard 说
13、:“我们需要一个面向对象的显示系统。”由此引发的讨论奠定了他们即将创建的面向对象的多平台图形用户界面工具包的智力基础。Haavard 于 1991 年开始和 Eirik 合作设计、编写最终成为 Qt 的这些类。随后的一年,Eirik 提出了“信号和槽”的设想一个简单并且有效的强大的图形用户界面编程范例。Haavard 实践了这个想法,并且建立了一个手写代码实现。到 1993 年,Haavard 和 Eirik当时已经开发出了 Qt 的第一个图形核心并且能够实现他们自己的窗口部件。同年末,Haavard 提议他们一起开展并且创建“世界上最好的 C+图形用户界面工具包”的业务。1994 年成为两个
14、程序员不幸的一年,他们没有客户,没有资金,只有一个未完成的产品,却希望闯入一个稳定的市场。非常幸运的是他们的妻子都有工作并且愿意支持他们的丈夫。在这两年里,Haavard 和 Eirik 认为需要继续开发他们的产品并且开始盈利。他们选择“Q”作为类的前缀,是因为该字母在 Haavard 的 Emacs 字体中看起来非常漂亮。“t”代表“工具包(toolkit)”,是从“Xt”,X 工具包中获得的灵感。公司于 1994年 3 月 4 日创立,最初名为“Quasar Technologies”,后更名为“Troll Tech”,现在改为“Trolltech”。1995 年 5 月,通过 Haava
15、rd 大学时的一个教授的联系,挪威 Metis 公司与他们签订了一份基于 Qt 进行软件开发的合同。大约同一时间,Trolltech 雇佣了 Arnt Gulbrandsen,正是他设计并实现了一套有独创性的文档系统,并且对 Qt 的代码也作出了贡献。1995 年 5 月 20 日,Qt 0.90 被上传到 sunsite.unc.edu。6 天后,在 comp.os.linux-announce 上发布。这是 Qt 的第一次公开发布。Qt 可以被同时用于 Windows 和 Unix 开发,它在两种平台上提供了相同的应用程序编程接口。从第一天起,Qt 就提供两种许可版本:一种是进行商业开发所
16、需的商业许可版本,另一种是进行开源开发的自由软件版本。Metis的合同确保了 Trolltech 的发展,在 10 个月之内没有人购买 Qt 的商业许可。1996 年,European Space Agency 购买了 10 份 Qt 商业许可,成了第 2 个 Qt 客户。凭着坚定的信念,Eirik 和 Haavard 又雇佣了另外一个开发人员。Qt 0.97 在 5 月底发布,并且在 1999 年 9 月 24 日,Qt1.0 面世。在这一年底,Qt 已经发展到了 1.1 的版本,共有来自 8 个不同国家的客户,他们购买了 18 份商业许可。这一年,在 Matthias Ettrich 的带
17、领下,创立了 KDE 项目。Qt 1.2 在 1997 年 4 月发布。Matthias Ettrich 利用 Qt 建立 KDE 的决定似的 Qt 成为在 Linux 环境下开发 C+图形用户界面的实际标准。Qt1.3 在 1997 年 9 月发布。Matthias 在 1998 年加入 Trolltech。当年 9 月最后一个 1 系列的版本 1.40 发布。1999 年 6 月 Qt2.0 发布。Qt2.0 有很多架构上的改变,比它的前几个版本功能更为强大,更为成熟。它还具备了 40 个新类和 Unicode 支持。Qt2 有了一个新的开源许可,Q 公共许可(QPL,Q Public L
18、icense),它遵循了开源定义。在 1999 年 8 月,Qt 赢得了 LinuxWorld的最佳库/工具奖。大约在这个时候,Trolltech Pty Ltd(澳大利亚)建立了。Trolltech 在 2000 年发布了 Qt/Embedded。它被设计为可以运行在嵌入式 Linux 设备上,并且提供了它自己的窗口系统作为 X11 的轻型替代品。现在 Qt/Embedded 和 Qt/X11 除了提供商业许可之外,还可以提供被广泛使用的 GNU 通用许可(GPL,GNU General PublicLicense)。到 2000 年底,Trolltech 已经创建了 Trolltech I
19、nc.(美国),并发布了第一个 Qtopia 版本,一个手持设备环境。Qt/Embedded 在 2001 年和 2002 年两次获得LinuxWorld“Best Embedded Linux Solution”(最好的嵌入式 Linux 解决方案)奖。Qt3.0 在 2001 年发布。现在 Qt 可以用于 Windows、Unix、Linux、嵌入式 Linux 和 MacOS X。Qt3.提供了 42 个新类和超过 50 万行的代码。Qt3.0 在 2002 年赢得了 SoftwareDevelopment Tools 的“Jolt Productivity Aword(震撼生产力奖)”
20、。2005 年夏,Qt4.0 发布,它大约有 500 个类和 9000 多个函数,Qt4 比以往的任何一个版本都要全面和丰富,并且它已经裂变成多个函数库,从而使开发人员可以根据自己的需要只连接所需要的 Qt 部分。相对于以前的所有 Qt 版本,Qt4 的进步是巨大的,它不仅彻底的对高效易用的模板容器、高级的模型/视图功能、快速而灵活的二维绘图框架和强大的统一字符编码标准的文本查看和编辑类进行了大量改进,就更不必说对那些贯穿整个 Qt 类中的成千上万个小的改良了。现如今,Qt4 具有如此广泛的特性,以至于 Qt 已经超越了作为图形用户界面工具包的界限,逐渐成长为一个成熟的应用程序开发框架。Qt4
21、 也是第一个能够在其所有可支持的平台上既可用于商业开发又可用于开源开发的 Qt 版本。同样在 2005 年,奇趣公司在北京开设了一家办事处,以便为中国及其销售区域内的用户提供服务和培训,并且为 Qt/Embedded Linux 和 Qtopia 提供技术支持。通过获取一些非官方的语言绑定件(Langauge binding),非 C+程序员也已早就开始使用 Qt,特别是用于 Python 程序员的 PyQt 语言绑定件。2007 年,公司发布了用于 C#程序员的非官方语言绑定件 Qyoto。同年,Qt Jambi 投放市场,它是一个官方支持的 Java 版 Qt应用程序编程接口。自奇趣公司(
22、现已被 NOKIA 收购)诞生以来,Qt 的声望经久不衰,而且至今仍然保持高涨。取得这样的成绩不但说明了 Qt 的质量,而且也说明了人们都喜欢使用它。在过去的10 年中,Qt 已经从一个只被少数专业人士所熟悉的“秘密”产品,发展到了如今遍及全世界拥有数以千计的客户和数以万计的开源开发人员的产品。1.31.3 QtQt 套件的组成(以套件的组成(以 Qt4.5Qt4.5 为准)为准)自 4.5 版开始,Qt 首次以 SDK 形式发布了 Qt 套件,并在单独的安装程序中包含了完整的 Qt SDK。Qt SDK 在一个单独安装程序内包含了使用 Qt 进行跨平台开发所需的全部工具,其中包括:1.1.Q
23、tQt CreatorCreator-跨平台跨平台 IDEIDEQt Creator 是全新的跨平台集成开发环境(IDE),专为 Qt 开发人员的需求量身定制。它包括:高级 C+代码编辑器 集成的 GUI 外观和版式设计器-Qt 项目和生成管理工具 集成的上下文相关的帮助系统 图形化调试器(基于 GDB)从这些话语中,我们不难看出 Nokia 全力打造 Qt Creator 的决心,意图将以前单独列出的 Qt Designer、Qt Assistant、Qt Linguist 全部整合到 Qt Creator 中,把它们全部作为 Qt Creator 的一部分,从而奠定 Qt Creator
24、的“官方出品、根正苗红”的地位。关于 Nokia 的战略想法这里暂且不谈,虽然 Nokia 意图如此,但是笔者觉得还是有必要罗嗦两句,向读者朋友介绍一下 Qt SDK 中的几个核心成员:2.2.QtQt 库库 Qt Library是一个拥有超过 400 C+类,同时不断扩展的库。它封装了用于端到端应用程序开发所需要的所有基础结构。优秀的 Qt 应用程序接口包括成熟的对象模型,内容丰富的集合类,图形有户界面编程与布局设计功能,数据库编程,网络,XML,国际化,OpenGL 集成等等。Qt Designer是一个功能强大的 GUI 布局与窗体构造器,能够在所有支持平台上,以本地化的视图外观与认知,
25、快速开发高性能的用户界面。Qt Assistant是一个完全可自定义,重新分配的帮助文件或文档浏览器,又称作 Qt 助手。它的功能类似于 MSDN,支持 html 的子集(图片、超链、文本着色),支持目录结构、关键字索引和全文搜索,可以很方便的查找 Qt 的 API 帮助文档,它是编程人员必备、使用频率最高的工具之一。Qt Demo是 Qt 例子和演示程序的加载器,有了这个工具,用户可以很方便的查看 Qt 提供的多姿多彩的例子程序,从中不仅可以看到程序运行的情况,还可以查看源码和文档。qmake是一个用于生成 Makefile(编译的规则和命令行)的命令行工具。它是 Qt 跨平台编译系统的基础
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基础 QT4 编程
限制150内