Qt 簡(jiǎn)介
Qt 是一個(gè)跨平臺(tái)的 C++ 圖形用戶界面庫(kù),由挪威 TrollTech 公司出品,目前包括Qt, 基于 Framebuffer 的 Qt Embedded,快速開(kāi)發(fā)工具 Qt Designer,國(guó)際化工具 Qt Linguist 等部分 Qt 支持所有 Unix 系統(tǒng),當(dāng)然也包括 Linux,還支持 WinNT/Win2k,Win95/98 平臺(tái)。
本文引用地址:http://www.biyoush.com/article/201610/305536.htm基本上,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ū)ο?/p>
Qt 的良好封裝機(jī)制使得 Qt 的模塊化程度非常高,可重用性較好,對(duì)于用戶開(kāi)發(fā)來(lái)說(shuō)是非常 方便的。 Qt 提供了一種稱為 signals/slots 的安全類型來(lái)替代 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
大量的開(kāi)發(fā)文檔
XML 支持
但是真正使得 Qt 在自由軟件界的眾多 Widgets (如 Lesstif,Gtk,EZWGL,Xforms,fltk 等等)中脫穎而出的還是基于 Qt 的重量級(jí)軟件 KDE 。 有趣的是,KDE 也是使得 Trolltech 公司承受巨大壓力的一個(gè)原因。下面我們將來(lái)看看這場(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)過(guò)多年競(jìng)爭(zhēng)之后, Motif 最終 勝出,成為最普遍使用的界面庫(kù), 后來(lái)雙方又妥協(xié)出一個(gè) CDE(Common Desktop Enviroment) 作為一個(gè)標(biāo)準(zhǔn)的圖形界面。 但是 Motif/CDER 的價(jià)格非常昂貴,在這同時(shí)微軟的 Windows 圖 形界面發(fā)展速度非常快,而 Unix 界的后起之秀 Linux 也急需一個(gè)可靠并且免費(fèi)的圖形界面。
1996 年 10 月,由開(kāi)發(fā)圖形排版工具Lyx的德國(guó)人 Matthias Ettrich 發(fā)起了 KDE 計(jì)劃。 KDE 的全稱為 K Desktop Environment,可以看出是針對(duì) CDE。 KDE 本身 是采用 GPL 宣言的,但是 KDE 卻是使用 Qt 來(lái)作為其底層庫(kù),因?yàn)楫?dāng)時(shí) Qt 已經(jīng)將其 Unix 版 本自由發(fā)布了,但是 Qt 并不遵循 GPL, 因此 KDE 被很多自由軟件的作者攻擊,認(rèn)為利用非自 由軟件開(kāi)發(fā)違背了 GPL 的精神,于是 GNU 的狂熱信徒兵分兩路,一路是去制作 Harmonny,試 圖重寫(xiě)一套兼容于 Qt 的替代品,另一路是由一個(gè) 26 歲的墨西哥程序員 Miguel De Icaza 領(lǐng)導(dǎo) 下重新開(kāi)發(fā)一套叫 GNOME(GNU Network Object Enviroment)來(lái)替代 KDE。
由于 Linux 界的老大 RedHat 不喜歡 KDE/Qt 的版權(quán),因此 RedHat 甚至專門派出了幾個(gè)全職程序員來(lái)加入 GNOME 進(jìn)行開(kāi)發(fā)工作,于是一場(chǎng)同 Motif VS Openlook 相 似的圣戰(zhàn)就這么打起來(lái)了。 Trolltech 為了 KDE 曾數(shù)次修改 Qt 的版權(quán),從成立 KDE Free Qt 基 金會(huì)到采用 QPL,可謂是費(fèi)盡心機(jī),但是 GNOME 采用的 GTK 一開(kāi)始就是完全的 GPL,因此在這個(gè)方 面 GNOME 有一定的優(yōu)勢(shì),加上 Qt/KDE 采用 C++ 開(kāi)發(fā),入門的門檻比較高,而 GTK/Gnome 采用 C, 因此 GNOME 吸引了更多的自由軟件開(kāi)發(fā)者,但是 KDE 畢竟先走了一步, 推出的 KDE1.1.2 十分穩(wěn)定, 而當(dāng)時(shí)急忙中推出的 GNOME1.0 的系統(tǒng)穩(wěn)定性奇差,有人甚至笑稱 GNOME1.0 還沒(méi)有 KDE 1.0 Alpha 穩(wěn)定。但是 GNOME 后來(lái)發(fā)展比較快,大有迎頭趕上的勢(shì)頭。 當(dāng)時(shí)雙方的開(kāi)發(fā)者在網(wǎng)絡(luò) 上炒得天翻地覆,連 Linux 之父 Linus 只是說(shuō)了一句喜歡用 KDE 都倍受指責(zé)。
戰(zhàn)爭(zhēng)到了第三個(gè)年頭,也就是2000年,可謂是風(fēng)云突變,一個(gè)接 一個(gè)重大的事件先后發(fā)生: 首先是一批從 Apple 公司出來(lái)的工程師成立了一個(gè)叫 Eazel 的公司替 GNOME 設(shè)計(jì)界面,然后是一批 GNOME 程序員成立了一個(gè) Helix Code 公司替 GNOME 提供商業(yè)支持,而大家期待以久的 KDE 2.0 也終于發(fā)布了,這恐怕是目前最為龐大的自由 軟件了之一, 除了 KDE 本身,還包括 Koffice 套件,和集成開(kāi)發(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)問(wèn)題, 又推出了嵌入式 Qt ,給了 GNOME 陣營(yíng)一個(gè)有力的回?fù)簟?/p>
到現(xiàn)在為止,這場(chǎng)戰(zhàn)爭(zhēng)還在繼續(xù), 相信我們不能很快看到結(jié)果。一般說(shuō)來(lái), 目前 GNOME 吸引的公司比較多,但是 KDE/Qt 的開(kāi)發(fā)的效率和質(zhì)量比 GNOME 高,而且在 Office/嵌入式 環(huán)境中先走一步,在一定時(shí)間內(nèi)還將處于優(yōu)勢(shì)地位。
那么對(duì)于用戶來(lái)說(shuō),如何在 Qt/GTK 中作出選擇呢?一般來(lái)說(shuō),如果用戶使用 C++,對(duì)庫(kù)的穩(wěn)定性,健壯性要求比較高,并且希望跨平臺(tái)開(kāi)發(fā)的話,那么使用 Qt 是較好的選擇, 但是值得注意的是,雖然 Qt 的 Free Edition 采用了 GPL 宣言,但是如果你開(kāi)發(fā) Windows 上的 Qt 軟件或者是 Unix 上的商業(yè)軟件,還是需要向 Trolltech 公司支付版權(quán)費(fèi)用的。
評(píng)論