Trolltech 公司在 1994 年成立,但是在 1992 年,成立 Trolltech 公司的那批程序員 就已經(jīng)開始設(shè)計(jì) Qt 了,Qt 的第一個(gè)商業(yè)版本于 1995 年推出然后 Qt 的發(fā)展就很快了,下面是 Qt 發(fā)展史上的一 些里程碑:
- 1996 Oct KDE 組織成立
- 1998 Apr 05 Trolltech 的程序員在 5 天之內(nèi)將 Netscape5.0 從 Motif 移植到 Qt 上
- 1998 Apr 08 KDE Free Qt 基金會(huì)成立
- 1998 Jul 09 Qt 1.40 發(fā)布
- 1998 Jul 12 KDE 1.0 發(fā)布
- 1999 Mar 04 QPL 1.0 發(fā)布
- 1999 Mar 12 Qt 1.44 發(fā)布
- 1999 Jun 25 Qt 2.0 發(fā)布
- 1999 Sep 13 KDE 1.1.2 發(fā)布
- 2000 Mar 20 嵌入式 Qt 發(fā)布
- 2000 Sep 06 Qt 2.2 發(fā)布
- 2000 Oct 05 Qt 2.2.1 發(fā)布
- 2000 Oct 30 Qt/Embedded 開始使用 GPL 宣言
- 2000 Sep 04 Qt free edition 開始使用 GPL
基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等圖形界 面庫(kù)和 Windows 平臺(tái)上的 MFC,OWL,VCL,ATL 是同類型的東西,但是 Qt 具有下列優(yōu)點(diǎn):
- 優(yōu)良的跨平臺(tái)特性:
Qt支持下列操作系統(tǒng): Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。
- 面向?qū)ο?
Qt 的良好封裝機(jī)制使得 Qt 的模塊化程度非常高,可重用性較好,對(duì)于用戶開發(fā)來說是非常 方便的。 Qt 提供了一種稱為 signals/slots 的安全類型來替代 callback,這使得各個(gè)元件 之間的協(xié)同工作變得十分簡(jiǎn)單。
- 豐富的 API
Qt 包括多達(dá) 250 個(gè)以上的 C++ 類,還替供基于模板的 collections, serialization, file, I/O device, directory management, date/time 類。甚至還包括正則表達(dá)式的處理 功能。
-
支持 2D/3D 圖形渲染,支持 OpenGL
-
大量的開發(fā)文檔
-
XML 支持
但是真正使得 Qt 在自由軟件界的眾多 Widgets (如 Lesstif,Gtk,EZWGL,Xforms,fltk 等等)中脫穎而出的還是基于 Qt 的重量級(jí)軟件 KDE 。 有趣的是,KDE 也是使得 Trolltech 公司承受巨大壓力的一個(gè)原因。下面我們將來看看這場(chǎng) 著名的自由軟件圣戰(zhàn) -- "KDE/QT .VS. Gnome/Gtk" 是怎么發(fā)生的。
在 Unix 的圖形界面一向是以 MIT 的 X Window 系統(tǒng)為標(biāo)準(zhǔn), 可是在商業(yè)應(yīng)用上有兩大流派,一派是以 Sun 公司領(lǐng)導(dǎo)的 Openlook 陣營(yíng),一派是 IBM/HP 領(lǐng)導(dǎo)的OSF (Open Software Foundation) 的 Motif, 雙方經(jīng)過多年競(jìng)爭(zhēng)之后, Motif 最終勝出,成為最普遍使用的界面庫(kù), 后來雙方又妥協(xié)出一個(gè) CDE(Common Desktop Enviroment) 作為一個(gè)標(biāo)準(zhǔn)的圖形界面。 但是 Motif/CDER 的價(jià)格非常昂貴,在這同時(shí)微軟的 Windows 圖 形界面發(fā)展速度非??欤?Unix 界的后起之秀 Linux 也急需一個(gè)可靠并且免費(fèi)的圖形界面。
1996 年 10 月,由開發(fā)圖形排版工具Lyx的德國(guó)人 Matthias Ettrich 發(fā)起了 KDE 計(jì)劃。 KDE 的全稱為 K Desktop Environment,可以看出是針對(duì) CDE。 KDE 本身 是采用 GPL 宣言的,但是 KDE 卻是使用 Qt 來作為其底層庫(kù),因?yàn)楫?dāng)時(shí) Qt 已經(jīng)將其 Unix 版本自由發(fā)布了,但是 Qt 并不遵循 GPL, 因此 KDE 被很多自由軟件的作者***,認(rèn)為利用非自 由軟件開發(fā)違背了 GPL 的精神,于是 GNU 的狂熱信徒兵分兩路,一路是去制作 Harmonny,試圖重寫一套兼容于 Qt 的替代品,另一路是由一個(gè) 26 歲的墨西哥程序員 Miguel De Icaza 領(lǐng)導(dǎo) 下重新開發(fā)一套叫 GNOME(GNU Network Object Enviroment)來替代 KDE。
由于 Linux 界的老大 RedHat 不喜歡 KDE/Qt 的版權(quán),因此 RedHat 甚至專門派出了幾個(gè)全職程序員來加入 GNOME 進(jìn)行開發(fā)工作,于是一場(chǎng)同 Motif VS Openlook 相似的圣戰(zhàn)就這么打起來了。 Trolltech 為了 KDE 曾數(shù)次修改 Qt 的版權(quán),從成立 KDE Free Qt 基 金會(huì)到采用 QPL,可謂是費(fèi)盡心機(jī),但是 GNOME 采用的 GTK 一開始就是完全的 GPL,因此在這個(gè)方 面 GNOME 有一定的優(yōu)勢(shì),加上 Qt/KDE 采用 C++ 開發(fā),入門的門檻比較高,而 GTK/Gnome 采用 C, 因此 GNOME 吸引了更多的自由軟件開發(fā)者,但是 KDE 畢竟先走了一步, 推出的 KDE1.1.2 十分穩(wěn)定, 而當(dāng)時(shí)急忙中推出的 GNOME1.0 的系統(tǒng)穩(wěn)定性奇差,有人甚至笑稱 GNOME1.0 還沒有 KDE 1.0 Alpha 穩(wěn)定。但是 GNOME 后來發(fā)展比較快,大有迎頭趕上的勢(shì)頭。當(dāng)時(shí)雙方的開發(fā)者在網(wǎng)絡(luò) 上炒得天翻地覆,連 Linux 之父 Linus 只是說了一句喜歡用 KDE 都倍受指責(zé)。
戰(zhàn)爭(zhēng)到了第三個(gè)年頭,也就是2000年,可謂是風(fēng)云突變,一個(gè)接一個(gè)重大的事件先后發(fā)生: 首先是一批從 Apple 公司出來的工程師成立了一個(gè)叫 Eazel 的公司替 GNOME 設(shè)計(jì)界面,然后是一批 GNOME 程序員成立了一個(gè) Helix Code 公司替 GNOME 提供商業(yè)支持,而大家期待以久的 KDE 2.0 也終于發(fā)布了,這恐怕是目前最為龐大的自由 軟件了之一, 除了 KDE 本身,還包括 Koffice 套件,和集成開發(fā)環(huán)境 Kdevelop 等等大批軟件,其主力軟件 Kounqueror 也是第一個(gè)可以同微軟的 Internet Exploer 相抗衡的瀏覽器。 而 Sun 公司,Red Hat 公司, Eazel 公司,Helix Code 等一批公司成立了一個(gè)GNOME 基金會(huì), Sun 還宣布將把重量級(jí)辦公軟件 Star office 同 GNOME 集成, Trolltech 公司自然不能坐以 待斃,于今年 10 月 4 日將 Qt 的 free edition 變?yōu)?GPL 宣言,徹底解決了 KDE 的版權(quán)問題, 又推出了嵌入式 Qt ,給了 GNOME 陣營(yíng)一個(gè)有力的回?fù)簟?/p>
到現(xiàn)在為止,這場(chǎng)戰(zhàn)爭(zhēng)還在繼續(xù),相信我們不能很快看到結(jié)果。一般說來, 目前 GNOME 吸引的公司比較多,但是 KDE/Qt 的開發(fā)的效率和質(zhì)量比 GNOME 高,而且在 Office/嵌入式 環(huán)境中先走一步,在一定時(shí)間內(nèi)還將處于優(yōu)勢(shì)地位。
那么對(duì)于用戶來說,如何在 Qt/GTK 中作出選擇呢?一般來說,如果用戶使用 C++,對(duì)庫(kù)的穩(wěn)定性,健壯性要求比較高,并且希望跨平臺(tái)開發(fā)的話,那么使用 Qt 是較好的選擇, 但是值得注意的是,雖然 Qt 的 Free Edition 采用了 GPL 宣言,但是如果你開發(fā) Windows 上的 Qt 軟件或者是 Unix 上的商業(yè)軟件,還是需要向 Trolltech 公司支付版權(quán)費(fèi)用的。