C++图形用户界面库qt简介
Qt是一个跨平台的C++图形用户界面库,由挪威TrollTech公司出品,目前包括Qt,基于Framebuffer的Qt Embedded,快速开发工具Qt Designer,国际化工具Qt Linguist等部分Qt支持所有Unix系统,当然也包括Linux,还支持WinNT/Win2k,Win95/98 平台。
Trolltech 公司在1994 年成立,但是在1992 年,成立Trolltech 公司的那批程序员就已经开始设计Qt 了,Qt 的第一个商业版本于1995 年推出然后Qt 的发展就很快了,下面是Qt 发展史上的一些里程碑:
1996 Oct KDE 组织成立 1998 Apr 05 Trolltech 的程序员在5 天之内将Netscape5.0 从Motif 移植到Qt 上 1998 Apr 08 KDE Free Qt 基金会成立 1998 Jul 09 Qt 1.40 发布 1998 Jul 12 KDE 1.0 发布 1999 Mar 04 QPL 1.0 发布 1999 Mar 12 Qt 1.44 发布 1999 Jun 25 Qt 2.0 发布 1999 Sep 13 KDE 1.1.2 发布 2000 Mar 20 嵌入式Qt 发布 2000 Sep 06 Qt 2.2 发布 2000 Oct 05 Qt 2.2.1 发布 2000 Oct 30 Qt/Embedded 开始使用GPL 宣言 2000 Sep 04 Qt free edition 开始使用GPL
基本上,Qt 同X Window 上的Motif,Openwin,GTK 等图形界面库和Windows 平台上的MFC,OWL,VCL,ATL 是同类型的东西,但是Qt 具有下列优点:
优良的跨平台特性:
Qt支持下列操作系统: Microsoft Windows 95/98,Microsoft Windows NT,linux,
Solaris,SunOS,HP-UX,Digital UNIX (OSF/1,Tru64),Irix,FreeBSD,B
SD/OS,SCO,AIX,OS390,QNX 等等。
面向对象
Qt 的良好封装机制使得Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt 提供了一种称为signals/slots 的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。 丰富的APIQt 包括多达250 个以上的C++ 类,还替供基于模板的collections,serialization,file,I/O device,Directory management,date/time 类。甚至还包括正则表达式的处理功能。支持2D/3D 图形渲染,支持OpenGL大量的开发文档XML 支持但是真正使得Qt 在自由软件界的众多Widgets (如Lesstif,Gtk,EZWGL,Xforms,fltk 等等)中脱颖而出的还是基于Qt 的重量级软件KDE 。有趣的是,KDE 也是使得Trolltech 公司承受巨大压力的一个原因。下面我们将来看看这场著名的自由软件圣战-- "KDE/QT .VS. Gnome/Gtk" 是怎么发生的。
在Unix 的图形界面一向是以MIT 的X Window 系统为标准,可是在商业应用上有两大流派,一派是以Sun 公司领导的Openlook 阵营,一派是IBM/HP 领导的OSF (OpenSoftware Foundation) 的Motif,双方经过多年竞争之后,Motif 最终胜出,成为最普遍使用的界面库,后来双方又妥协出一个CDE(Common Desktop Enviroment) 作为一个标准的图形界面。但是Motif/CDER 的价格非常昂贵,在这同时微软的Windows图形界面发展速度非常快,而Unix 界的后起之秀linux 也急需一个可靠并且免费的图形界面。
1996 年10 月,由开发图形排版工具Lyx的德国人Matthias Ettrich 发起了KDE 计划。KDE 的全称为K Desktop Environment,可以看出是针对CDE。KDE 本身是采用GPL 宣言的,但是KDE 却是使用Qt 来作为其底层库,因为当时Qt 已经将其Unix 版本自由发布了,但是Qt 并不遵循GPL,因此KDE 被很多自由软件的作者攻击,认为利用非自由软件开发违背了GPL 的精神,于是GNU 的狂热信徒兵分两路,一路是去制作Harmonny,试图重写一套兼容于Qt 的替代品,另一路是由一个26 岁的墨西哥程序员Miguel De Icaza 领导下重新开发一套叫GNOME(GNU Network Object Enviroment)来替代KDE。
由于linux 界的老大RedHat 不喜欢KDE/Qt 的版权,因此RedHat 甚至专门派出了几个全职程序员来加入GNOME 进行开发工作,于是一场同Motif VS Openlook 相似的圣战就这么打起来了。Trolltech 为了KDE 曾数次修改Qt 的版权,从成立KDE FreeQt 基金会到采用QPL,可谓是费尽心机,但是GNOME 采用的GTK 一开始就是完全的GPL,因此在这个方面GNOME 有一定的优势,加上Qt/KDE 采用C++ 开发,入门的门槛比较高,而GTK/Gnome 采用C,因此GNOME 吸引了更多的自由软件开发者,但是KDE 毕竟先走了一步,推出的KDE1.1.2 十分稳定,而当时急忙中推出的GNOME1.0的系统稳定性奇差,有人甚至笑称GNOME1.0 还没有KDE 1.0 Alpha 稳定。但是GNOME 后来发展比较快,大有迎头赶上的势头。当时双方的开发者在网络上炒得天翻地覆,连linux 之父Linus 只是说了一句喜欢用KDE 都倍受指责。
战争到了第三个年头,也就是2000年,可谓是风云突变,一个接一个重大的事件先后发生: 首先是一批从Apple 公司出来的工程师成立了一个叫Eazel 的公司替GNOME 设计界面,然后是一批GNOME 程序员成立了一个Helix Code 公司替GNOME 提供商业支持,而大家期待以久的KDE 2.0 也终于发布了,这恐怕是目前最为庞大的自由软件了之一,除了KDE 本身,还包括KOffice 套件,和集成开发环境Kdevelop 等等大批软件,其主力软件Kounqueror 也是第一个可以同微软的Internet EXPloer 相抗衡的浏览器。而Sun 公司,Red Hat 公司,Eazel 公司,Helix Code 等一批公司成立了一个GNOME 基金会,Sun 还宣布将把重量级办公软件Star office 同GNOME 集成,Trolltech 公司自然不能坐以待毙,于今年10 月4 日将Qt 的free edition 变为GPL宣言,彻底解决了KDE 的版权问题,又推出了嵌入式Qt ,给了GNOME 阵营一个有力的回击。
到现在为止,这场战争还在继续,相信我们不能很快看到结果。一般说来,目前GNOME 吸引的公司比较多,但是KDE/Qt 的开发的效率和质量比GNOME 高,而且在Office /嵌入式环境中先走一步,在一定时间内还将处于优势地位。那么对于用户来说,如何在Qt/GTK 中作出选择呢?一般来说,如果用户使用C++,对库的稳定性,健壮性要求比较高,并且希望跨平台开发的话,那么使用Qt 是较好的选择,但是值得注意的是,虽然Qt 的Free Edition 采用了GPL 宣言,但是如果你开发Windows 上的Qt 软件或者是Unix 上的商业软件,还是需要向Trolltech 公司支付版权费用的。
| 出处: 中国IT实验室 日期: 2008-7-24 |
好: 一般: 差: |
|