GTK+与QT的对比
GTK+與QT的對(duì)比
分類(lèi): 95_Others 2013-02-05 09:27 1430人閱讀 評(píng)論(0) 收藏 舉報(bào)想看看圖形界面系統(tǒng)的優(yōu)缺點(diǎn),轉(zhuǎn)載了網(wǎng)友整理的:?
GTK+的優(yōu)點(diǎn)與QT的優(yōu)點(diǎn)整理 在嵌入式 Linux 下有很多圖形界面系統(tǒng) GUI,包括 Qt/Embedded,FLTK,Microwindows 和 GTK+ 等。作為一個(gè)開(kāi)發(fā)者,到底使用什么樣的 GUI 系統(tǒng)呢?對(duì)一個(gè)系統(tǒng),將它改造為符合你的需求,你要做多少修改呢?修改后的系統(tǒng)的尺寸一般會(huì)有多大呢?這些都是開(kāi)發(fā)人員會(huì)遇到的問(wèn)題。我們?cè)谶@里討論的就 是要對(duì)這些內(nèi)容做一個(gè)具體細(xì)致的分析,通過(guò)我們的討論,大家會(huì)對(duì)基于 GTK+ 和 X 的 GUI 在嵌入式Linux 下的應(yīng)用有一個(gè)確切的了解。 正文在嵌入式系統(tǒng)應(yīng)用日益發(fā)展的今天,越來(lái)越多的應(yīng)用都需要使用到 GUI 來(lái)進(jìn)行開(kāi)發(fā),以此來(lái)獲得更好的交互性。
嵌入式 Linux 下 GUI 的選擇,對(duì)大多數(shù)開(kāi)發(fā)人員來(lái)說(shuō)是一個(gè)需要權(quán)衡對(duì)比的過(guò)程。選擇 GTK+ 運(yùn)行在 X 系統(tǒng)上,然后 X 系統(tǒng)運(yùn)行在嵌入系統(tǒng)的 framebuffer 上,這會(huì)是一個(gè)很好的選擇。
GTK+ 與 X 的優(yōu)點(diǎn)
當(dāng)然,GTK+ 與 X 一般都是被大家考慮為體積較大的桌面系統(tǒng)的好搭配,但實(shí)際上對(duì)于嵌入系統(tǒng)來(lái)說(shuō),它也有著諸多的優(yōu)點(diǎn):
1、 X-window 系統(tǒng)與 GTK+ 都非常穩(wěn)定可靠,X-window 系統(tǒng)是經(jīng)歷了長(zhǎng)期的開(kāi)發(fā)及應(yīng)用實(shí)踐的,GTK+ 也是一個(gè)比較成熟的開(kāi)放源代碼項(xiàng)目;
2、 X-window 系統(tǒng)是一個(gè)靈活的 client/server 的模型結(jié)構(gòu),一個(gè)應(yīng)用客戶端的崩潰不會(huì)影響到圖形系統(tǒng)的其他部分,這是一個(gè)很重要的特性,它有利于支持第三方應(yīng)用的擴(kuò)展開(kāi)發(fā),而不影響到主體部分;
3、 GTK+有兩個(gè)重要的庫(kù):GDK和GLIB。GDK抽象了底層的窗口管理,要移植 GTK+ 到另一個(gè)不同的窗口系統(tǒng)的話,我們只需要移植 GDK 就可以了。GLIB 是一個(gè)工具集合,它包括了數(shù)據(jù)類(lèi)型,各種宏定義,類(lèi)型轉(zhuǎn)化,字符串處理,任何應(yīng)用程序都可以鏈接這個(gè) GLIB 庫(kù),使用其中的各種數(shù)據(jù)類(lèi)型、方法,來(lái)避免重復(fù)代碼,或者說(shuō)避免開(kāi)發(fā)人員重新發(fā)明輪子,這樣有利于減少整個(gè)系統(tǒng)的尺寸;
4、 對(duì) GTK+/X 的裁剪是很容易的,它們有著很好的可配置的選項(xiàng),有著清晰的代碼結(jié)構(gòu),可以保證安全正確地去掉大段的不需要的代碼;
5、 GTK+ 有著大量的應(yīng)用,GTK+ 已經(jīng)被用在了很多重要的應(yīng)用系統(tǒng)中;
6、 GTK+ 的授權(quán)是 LGPL 方式的,X 是 non-copyleft free license 的,第三方開(kāi)發(fā)的系統(tǒng)都能與它們進(jìn)行鏈接;
7、 GTK+/X 二者都是基于 C 代碼的,而不是C++;
8、 GTK+ 使用 C 來(lái)實(shí)現(xiàn)了面向?qū)ο蟮募軜?gòu);
其他 GUI 系統(tǒng)
其他可以選擇的圖形系統(tǒng)包括:Qt/Embedded,FLTK 和 Microwindows。
1、 Qt/E 是其中較高級(jí)的,它是一個(gè)完整的,基于 framebuffer 的 GUI 系統(tǒng),由 Trolltech 公司開(kāi)發(fā);
2、 Qt/E 有著高效的圖形渲染效果,還包括 TrueType 字體系統(tǒng),及 alpha blending 半透明處理;
3、 但 Qt/E 不是使用 LGPL 授權(quán)方式,而是使用兩種授權(quán)方式:開(kāi)發(fā)使用 GPL,而商用需要授權(quán)與版稅;
4、 Qt/E 是用 C++ 編寫(xiě)的;
5、 Qt/E 非常大,一個(gè) iPAQ QPE 就包括了 3.3MB 的 Qt/E 庫(kù)和一個(gè) 718KB 的 QPE 庫(kù)(和 Xlib 類(lèi)似的一種庫(kù));
6、 Qt/E 不夠穩(wěn)定,QPE demo 不錯(cuò),但出現(xiàn)過(guò)崩潰;
7、 FLTK (the Fast Light Toolkit) 是一個(gè)小型的 GUI 圖形系統(tǒng),它也是用 C++ 寫(xiě)的,特性太少,應(yīng)用范圍較少,不夠成熟;
8、 Microwindows 和 X-Window 相比也是一個(gè)不錯(cuò)的選擇,它占用大約 100KB-600KB 大小的內(nèi)存,和文件存儲(chǔ)空間,雖然已經(jīng)有了一個(gè)其上的 GTK+ 移植,但還是不夠成熟;
X-window:比你想象的要小很多
對(duì)于X-window系統(tǒng),廣大的網(wǎng)絡(luò)開(kāi)發(fā)者已經(jīng)做了大量的工作來(lái)減小其的尺寸,最知名的有TinyX??梢酝ㄟ^(guò)對(duì)不需要的代碼的裁剪及去除XLIB中靜態(tài)數(shù)據(jù)來(lái)減少總體的尺寸,如:color管理系統(tǒng),弧形,粗線條等。
在 大多數(shù)開(kāi)發(fā)人員的印象里,X 系統(tǒng)很龐大,但實(shí)際上,你聽(tīng)到的,是那些對(duì) X 不夠了解的人的一種誤解。在經(jīng)過(guò)裁剪后的情況下,GTK+/X 要比 GTK+/FB 與 Qt/E 還要來(lái)得有效,且 XLIB 對(duì)一般的應(yīng)用程序有著更好的支持作用,應(yīng)用程序的開(kāi)發(fā)會(huì)變得更高效。
--------------------------------------------QT 優(yōu)點(diǎn) :
1、跨X11, Win32, Mac三個(gè)平臺(tái)并且是二進(jìn)制原生代碼的(比java和.net程序快得多)(源代碼級(jí)移植)
2、有個(gè)十分好使用的工程管理工具qmake((相比較wxWidget, Gtk+等而言,非常地方便開(kāi)發(fā))
3、在常用的X11, Win32平臺(tái)既有開(kāi)源版,又有商業(yè)版,供不同的用途使用。又有公司的商業(yè)支持,開(kāi)發(fā)正規(guī)。有KDE(包括KOffice, KDevelop等)這樣典型的的成功運(yùn)用的項(xiàng)目,使人放心。隨著 Qt ?4.0開(kāi)源版的發(fā)布,KDE向Windows的移植已經(jīng)確定,由此,KDevelop, KOffice等一大批KDE下面的軟件也就能移植過(guò)去, 有了KDevelop,KWrite等,Windows下 Qt 的應(yīng)用將很快多起來(lái),也更加方便開(kāi)發(fā),我在期待著KDevelop移植到Windows,以解決Windows下的用 QT 開(kāi)發(fā)的IDE問(wèn)題。?
4、有方便的嵌入式圖形界面開(kāi)發(fā)方面的解決方案
總結(jié)
以上是生活随笔為你收集整理的GTK+与QT的对比的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: R 升级到 4 之后的悲剧
- 下一篇: C语言的头文件和库文件(函数库)