QT界面开发

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1Qt4界面开发

1.1Q t历史

Qt是一个用于桌面系统和嵌入式开发的跨平台应用程序框架。它包括一个直观的API 和一个丰富的类库,以及用于GUI开发和国际化的集成工具,另外它支持Java™和C++开发。Qt让企业无须重新编写源代码,便可以构建运行在不同桌面操作系统和嵌入式设备上的软件应用程序。

Qt框架最早可公开获取是在1995年5月。最初是由Haavard Nord(TrollTech公司的首席执行官)和Eirik Chambe-Eng(TrollTech公司的董事会主席)。Haavard和Eirik 最早在特隆赫姆的挪威技术学院相遇,在那里他们双双获得了计算机科学硕士学位。

早在1991年,Haavard 就开始写一些最终成为Qt的类,并和 Eirik合力设计。在接下来的一年,Eirik提出了“信号和槽”的思想,一个现在已经被一些其他套装工具包含简单但功能强大的GUI编程范式。Haavard 接受了这一思想并手工生成了这一思想的代码实现。到1993年,Haavard和Eirik已经完成了Qt的第一个图形内核的开发并能用它来实现一些他们所需的物件。在这一年的年末,Haavard建议他们一起去经商,创建一个“世上最好的C++ GUI框架”。

字母“Q”被选为类的前缀是因为这个字母在Haavard的Emacs字体中看起来很漂亮。受到Xt(the X toolkit)的启发,字母“t”被追加来表示“toolkit”。公司在1994年5月4日成立,起初被命名为“Quasar Technologies”,之后被改名为“Troll Tech”,今天则被称为奇趣科技(Trolltech)。

1995年5月20日,Qt 0.90被上传到。六天后,这一发布在comp.os.linux.announce被宣布。这是Qt的第一个公共发行版。Qt可以被用在Windows 和Unix开发中,在两个系统中提供相同的API。Qt从一开始就可以在两种许可协议下获取:一个是商业开发中需要的商业许可协议,一个用于开源开发的自由软件版。

1996年3月,欧洲航天局成为Qt的第一个客户,一下买了十个Qt商业许可。Qt 0.97在同年的5月底发布,1996年9月24日,Qt 1.0发布。到了同年年底,Qt到达了版本1.1;拥有8个客户,每一个都在不同的国家,他们购买了18个商业许可。

Qt 1.2 在1997年4月发布。Matthias Ettrich利用Qt构建KDE的决定帮助Qt成为Linux C++ GUI 开发的实际标准,1997年9月Qt 1.3发布。

1998年9月,Qt 1的最后一个主要发行版1.40发布。Qt 2.0于1999年7月发布。Qt 2有了一个新的开源许可协议,发布许可协议(QPL),遵守开源的定义。1999年8月,Qt赢得了LinuxWorld的“最佳开发库/工具”大奖。

2000年奇趣科技发布了Qtopia核心(后来成为Qt/Embedded)。它被设计用来运行在嵌入式Linux设备上并提供了自己的窗口系统作为X11的一个轻量级代替。现在Qt/X11和Qtopia核心都可以通过GNU通用许可(GPL)获取。到2000年年底,奇趣科技成立了Trolltech Inc.(USA)并且发布了Qtopia的第一个版本,一个移动电话和PDAs应用程序平台。Qtopia赢得了2001和2002年LinuxWorld的“最佳嵌入式 Linux 解决方案”大奖,

Qtopia Phone 也在2004年赢得了相同的荣誉。

2001年Qt 3.0发布。Qt现在可以在Windows,Mac OS X,Unix和Linux(桌面和嵌入式系统)上获取。Qt 3新增了42个类,代码超过了500,000行。Qt3是Qt2的一个大的进步,包括相当大的本地化和Unicode支持,一个全新的文本查看和编辑物件,和一个类似Perl的正则表达式类。2002年Qt 3赢得了软件开发时代的“Jolt 产品大奖”。

2005年夏天,Qt 4.0发布。包括大约500个类和9000多个函数,Qt 4比以前的任何版本都要大,都要优雅,并且它已经被分割成几个库,因此程序员只需要包含他们需要的Qt 的一部分。Qt 4包含了一套全新的高效且易用的模版容器,高级的模型/视图函数,一个快速且有弹性的2D绘图框架,和功能强大的Unicode文本查看/编辑类,还有一些未提到的针对所有类的许多得较小的增强,这较以前的版本有了巨大的进步。Qt 4是第一个在所有支持平台上都可以通过商业和开源开发许可获得的Qt版本。

从奇趣诞生的第一天,Qt的流行就从未减弱过,即使今天也仍在继续。这一成功不但反映了Qt良好的品质,也反映了Qt的使用乐趣。在最近的十年中Qt从默默无闻成长为一个全世界成千上万客户和开源开发者每天都要使用的产品。

1.2Q t产品概述

Qt 是一个全面的开发框架。它包含一个广泛的队列,该队列为功能、性能和工具队列,用以确保针对多客户端和服务器端的高性能、跨平台开发。针对范围广泛的各行各业,包括Google™、Adobe Lucasfilm 和 Skype™,通过在Qt一个平台上的软件投资而涵盖其它众多平台,Qt可以缩短投入市场的时间并且提高生产效率。

图1.1 Qt框架结构图

z Qt类库模块是一个拥有超过400个类,同时不断扩展的类库。它封装了用于端到端应用程序开发所需要的所有基础结构。

z Qt设计者(Designer)是一个功能强大的GUI布局与窗体构造器,能够在所有支持的平台上,以本地化的视图外观与认知,快速开发高性能的用户界面。

z Qt语言家(Linguist)是一套用来消除国际化工作流程中所带来障碍的工具。

z Qt助手(Assisstant)一个完全可自定义,重新分配的帮助文件或文档浏览器,它可与基于Qt 的应用程序运行。

z Java程序员可获得的Qt Jambi作为一个支持Java™的跨平台多用户端应用开发框架,Qt现已提供给Java程序员。

Qt拥有一系列窗体(在 Windows 术语中称为“控件”),这些窗体可提供标准的GUI 功能。Qt引入了一种名为“信号和槽”的新型替代技术,供对象之间通信使用,它取代了在过时的框架中使用的老旧的、缺乏安全性的传统回调技术。另外,Qt还提供了一种传统事件模型,用来处理鼠标单击、按键以及其他用户输入操作。Qt的跨平台GUI应用程序可以支持现代应用程序所需的所有用户界面功能,例如:菜单、上下文菜单、拖放以及可停靠工具栏。使用Qt提供的桌面集成功能,通过利用每个平台提供的服务,可以将应用程序扩展至所在的桌面环境中。

Qt还提供了一款专门用于用户界面图形设计的工具--Qt Designer。Qt Designer 除了提供绝对定位功能以外,还支持强大的布局功能。使用Qt Designer,既可专门设计GUI,又可以利用它提供的与流行的集成开发环境集成的功能,用其开发整个应用程序。

Qt对2D和3D图形有着卓越的支持。Qt实际上是针对平台独立的OpenGL编程而开发的标准GUI框架。Qt 4的绘图系统为所有支持的平台提供了高质量的渲染功能。使用Qt 4的高级画布框架,开发人员可以创建各种交互式图形应用程序,从而充分利用Qt的先进绘图功能。

Qt可以使用标准数据库创建与平台无关的数据库应用程序。针对Oracle、Microsoft SQL Server、Sybase Adaptive Server、IBM DB2、PostgreSQL.、MySQL、Borland Interbase、SQLite 和 ODBC 兼容的数据库,Qt提供了本地驱动。另外,Qt还提供了专用于数据库的控件,使任何内建或自定义控件均可感知数据。

使用Qt的样式支持和主题支持功能,Qt编程可获得所有支持的平台的本地化观感。从单一源码树只需采用重新编译方式即可为Windows 98至Windows XP和Windows VistaTM、Mac OS X、Linux、Solaris、HP-UX 以及其他使用X11的Unix版本生成应用程序。另外,Qt应用程序经过编译也能在Qtopia中运行。使用Qt的qmake构建工具,可为目标平台生成相应的makefile或.dsp文件。

由于Qt的架构充分利用了底层平台的优点,许多用户在Windows,Mac OS X和Unix 平台上做单一平台开发时也使用Qt,因为他们更愿意使用Qt的方法。Qt包含了对具体平台的特有功能的支持,例如:Windows中的ActiveX以及Unix中的Motif。

Qt全面使用 UnicodeTM,并且对国际化支持十分成熟。Qt还为翻译人员提供了Qt Linguist(语言家)以及其他工具。应用程序可以轻松地混合使用阿拉伯语、汉语、英语、以色列语、日语、俄罗斯语以及Unicode支持的其他语言。

Qt提供了一系列与特定域相关的类。例如,Qt的XML模块提供了SAX和DOM类,可以读取并操作以XML格式存储的数据;使用Qt的STL兼容集合类,可以将对象存储在内存中;使用与Java和C++标准模板库(STL)中相同样式的迭代器来操作对象;使用Qt 的输入/输出和网络连接类,可以使用标准协议处理本地文件和远程文件。

相关文档
最新文档