深度解析 QT 介紹 跨平臺界面庫
本文介紹 QT 介紹 跨平臺界面庫,它是一個跨平臺的C++圖形用戶界面庫,由挪威TrollTech公司出品,目前包括Qt、基于FrameBuffer的Qtopia Core、快速開發(fā)工具Qt Designer和國際化工具Qt Linguist等部分。Qt支持所有的UNIX系統(tǒng),當(dāng)然也包括Linux系統(tǒng),還支持WinNT/Win2k、Windows 95/98平臺。
基本上Qt同X-Window上的Motif、Openwin、GTK等圖形界面庫和Windows平臺上的MFC、OWL、VCL、ATL是同類型的。不過Qt還具有下列一些優(yōu)點。
(1)優(yōu)良的跨平臺特性。
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等。
(2)面向?qū)ο蟆?/p>
Qt的良好封裝機制使得Qt的模塊化程度非常高,可重用性較好,對于用戶開發(fā)來說是非常方便的。Qt提供了一種稱為signals/slots 的安全類型來替代callback,這使得各個元件之間的協(xié)同工作變得十分簡單。
(3)豐富的API。
Qt包括多達(dá)250個以上的C++類,還提供基于模板的collections、serialization、file、I/O device、directory management和date/time類。甚至還包括正則表達(dá)式的處理功能。
(4)支持2D/3D圖形渲染,支持OpenGL。
(5)大量的開發(fā)文檔。
(6)XML支持。
但是真正使得Qt在自由軟件界的眾多Widgets(如Lesstif、Gtk、EZWGL、Xforms及fltk等)中脫穎而出的還是基于Qt的重量級軟件KDE。Qt雖然是商業(yè)公司的產(chǎn)品,但是走的卻是開源路線,提供免費下載,全部都是開放源代碼,非商業(yè)用途亦采用GPL的版權(quán)宣告,著名的Open Source"KDE"項目便是采用Qt開發(fā)的。
Trolltech也針對嵌入式環(huán)境推出了Qt Embedded產(chǎn)品。與桌面版本不同,Qt Embedded已經(jīng)直接取代了X Server及X Library等角色,將所有的功能全部整合在一起。
Qt Embedded同樣具有跨平臺的特點,省掉了不少移植軟件的功夫,這樣的概念和Java十分接近。同時它還采用模塊化設(shè)計,其最大的好處是有彈性,Qt Embedded號稱最小,可以縮到800 KB左右,最多可以長到3 MB(for Intel x86),這樣的彈性也讓Qt Embedded更適合在嵌入式環(huán)境下生存。
Qt Embedded延續(xù)了Qt在X上的強大功能,在底層摒棄了X lib,僅采用FrameBuffer作為底層圖形接口。同時,將外部輸入設(shè)備抽象為keyboard和mouse輸入事件,底層接口支持鍵盤、GPM鼠標(biāo)、觸摸屏及用戶自定義的設(shè)備等。
Qt Embedded類庫完全采用C++封裝。豐富的控件資源和較好的可移植性是Qt Embedded最為優(yōu)秀的一方面。它的類庫接口完全兼容于同版本的Qt-X11,使用X下的開發(fā)工具可以直接開發(fā)基于Qt Embedded的應(yīng)用程序QUI界面。
與前兩種GUI不同的是,Qt Embedded的底層圖形引擎只能采用FrameBuffer,這就注定了它是針對高端嵌入式圖形領(lǐng)域的應(yīng)用而設(shè)計的。由于該庫的代碼追求面面俱到,以增加它對多種硬件設(shè)備的支持,造成了其底層代碼比較凌亂,各種補丁較多的問題。Qt Embedded的結(jié)構(gòu)也過于復(fù)雜和臃腫,很難進行底層的擴充、定制和移植,尤其是用來實現(xiàn)signal/slot機制的moc文件。
Qt Embedded當(dāng)前已經(jīng)升級為Qtopia Core和Qtopia Core,繼承了Qt4的新技術(shù),包括:高性能渲染引擎、模板容器類及基于行為的主窗口架構(gòu),改進的功能特點包括文本渲染與多線程技術(shù)。當(dāng)編譯Qtopia Core時,可以去除不用的功能,以最小化軟件的占用空間。
小結(jié):QT 介紹 跨平臺界面庫的內(nèi)容介紹完了,本篇屬于純介紹性的文章,希望這些理論知識能幫助到你吧。