现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

Qt的历史和特点

2014-09-23 06:11 工业·编程 ⁄ 共 3242字 ⁄ 字号 暂无评论

    Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。

    Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。

    2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。

    2012年,Qt被Digia收购。

    2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。

Qt的版本众多,可分为两大家族:桌面平台家族与嵌入式平台家族。

前者又包括以下三个平台:

l) Windows平台,包括Windows 95/98/ME、NT4、2000和XP、win7、win8等。

2) X11平台,包括Linux、Solaris、HP-UX、Irix、AIX以及其他一些Unix的变种。

3) Mac平台。

后者运行于嵌入式Linux 内核之上,精简与优化了各种图形操作,程序运行时无需X11与motif系统的支持,这样可有效减少内存消耗与CPU负担。

对于用户来说,桌面家族和嵌入式家族所调用的函数与类是一致的,这样当你移植一个系统时所做的改动就很少,甚至只需重新编译。Qt与Java同属跨平台的开发工具,但原理却完全不同:Qt的跨平台特征是在代码级实现而非运行级,不同的平台需要单独编译,因此也不需要什么虚拟机。如果说Java是“一次编译,到处运行”的话,Qt就是“一次编码,到处编译”。这种差异导致的结果是Qt开发的程序运行效率要高于Java开发的程序,可以用于工控等有实时性要求的场合。

在这里也顺便提一下另外两个使用较广泛的跨平台开发工具:Kylix和wxWindows。

前者是Borland公司的力作,在功能上相当于Delphi for Linux。为了使代码能跨平台编译,Borland新开发了一种组件CLX,即交叉平台控件库(Component Library Cross-Platform. )。巧的是Qt被选择作为CLX的基础,因此两者有着亲密的血缘关系。可惜Kylix上的开发语言是pascal 语言, 这对于C/C++的爱好者来说难免有点失望了。

wxWindows(官方站点www.wxwindows.org)同Qt比较类似,也是一个跨平台的C++开发架构,自身也不带编译器。它最初起源于英国爱丁堡大学的人工智能研究所,93年发布了第一个公开版本,支持Windows、Unix 和MAC平台,目前由一个非赢利目的的民间团体进行开发、升级与维护,源码开放,功能也比较完整。但可能是由于它的非赢利性导致投入也不是很多吧,感觉在整体的健壮性、易用性和性能上还是和Qt有着一定的差距。

对于同一种平台Qt亦分不同级别,如免费版,专业版与企业版。免费版仅用于开发源码开放的自由软件,不能用于商业软件的开发,Windows下最新的免费版还有时间限制;专业版与企业版可用于开发商业软件,但需付费购买。截止2002年1月8 日,Qt的最新Windows商业版本为3.0.1版,最新免费非商业版本为2.3版(本次专题中的程序即用2.3版开发)。最新Unix版本是3.0版。

    用过Linux的用户都知道,Linux发行商一般提供两套图形管理程序,一个是KDE,另一个是gnome。其他的GUI还有一些,但以这两个为主。KDE就是以Qt为基础设计的一套管理器。由于Trolltech是一个商业公司,因此Qt并不完全按GPL的准则发行,最初发行Qt时源代码是不公开的。这导致了部分Linux 开发者的反感,他们决定重新设计一个图形管理器与KDE抗衡,这也就是gnome的由来。

    现在Qt通过三种许可协议发放:1、商业开发,使用对象是开发商用软件的程序员。2、教学专用,使用对象是用来教学Qt的各个学院、大学。3 、GPL,使用对象是自由软件的开发者。用收费差异来衡量的话,就是企业版、专业版与免费版。其中X11平台下的各个版本都提供源代码;Windows平台下只有企业版与专业版提供源代码,且各版本并不同步,例如当前的最新版本为3.0版, 但Windows免费版本是2.3版。

Qt的特征包括以下几点:

1.数据库编程

Qt 3.0内建了一组独立于各平台和数据库的API,专门用来调用SQL数据库,这组API为Oracle、PostgreSQL以及MySQL提供ODBC以及特殊数据库驱动程序支持。Qt 3.0内置GUI和底层数据库同步的数据检测支持功能,使得后台数据的更改与前端界面的刷新同步,而Qt Designer亦支持这些新的控制功能,为数据库提供应用软件快速开发工具(RAD)解决方案。

2.Qt Designer

Qt Designer是一个全功能的图形用户界面开发工具,与Delphi的界面有点相似。它支持包括菜单和工具栏的应用软件主窗口的交互式设计,并且完全支持可定制模式的窗口控件。此外,Qt Designer还内置了C++编辑器,允许用户在RAD环境中直接编辑源代码。

3.Qt Linguist

Qt Linguist是一个本地化工具,能够让用户把基于Qt开发的程序从一种语言简单、智能地转变成另外一个语言,适合于开发国际版软件。它能够把程序中所有可见的文本转换成任何支持统一字符编码标准(Unicode)和指定平台的语言,它最主要的特征是一个适应特殊目的的编辑工具和多语言术语智能数据库。一旦完成新的翻译,数据库将保存这些术语,以便以后再次使用。此外,Qt Linguist还完全支持Unicode 3。

4.Qt Assistant

Qt Assistant是Qt 3.0提供的一个独立应用软件,它能够浏览Qt的类文档、Qt Designer和Qt Linguist手册。此外,它还提供了目录检索、内容纵览、书签、历史记录以及在页面内搜索等功能,功能上类似于微软的MSDN。

5.国际化文本显示

即使是在系统没有安装Unicode字体的情况下,Qt 3.0也支持多内码混合的文本。同时它亦支持从右至左以及从上至下型的语言,像阿拉伯语(Arabic)和希伯来语(Hebrew)。

6.支持HTTP和FTP网络协议

Qt 3.0的网络编程模块提供一个通过HTTP协议交换数据的API(以前版本已经实现FTP协议)。

7.支持多显示器

Qt 3.0允许应用软件支持多个显示器。在Unix平台上,Qt3.0支持Xinerama和传统的多显示器技术,而Windows平台上则是Windows 98和2000支持的虚拟桌面技术。Qt 3.0提供一个独立于系统平台的API以实现上述技术。

8.新的组件模型

这个特征类似于Windows下的COM(虽然COM也号称平台无关,但目前似乎仅在Windows平台上应用),Qt 3.0提供一

个独立于系统平台的API,以现实共享库加载等功能。

9.美观的GUI界面实现

Qt 3.0支持浮动窗口,扩展了风格引擎,支持大量的标准窗口部件, 包括进度显示条(p r o g r e s s b a r ) , 旋转框(spinbox)以及表格标题(table header)等。此外,它还为交互式文本编辑增加了图形界面控制。

10.可接近性支持

Qt可控制与提供有关可接近性体系结构的信息,通过Qt提供的标准工具可开发视觉或肢体残疾用户使用的应用软件(例如 Windows Magnifier和Narrator)。

11.64位安全

Qt 3.0支持即将推出的最新一代64位硬件。

给我留言

留言无头像?