嵌入式linux應(yīng)用開發(fā)之:初識Qt
隨著Linux系統(tǒng)及基于linux系統(tǒng)的嵌入式產(chǎn)品的蓬勃發(fā)展,Qt、Qt/Embedded、Qtopia的字樣越來頻繁的出現(xiàn)在我們面前。在華清遠見的嵌入式培訓(xùn)課程中,Qt是嵌入式學(xué)院<嵌入式工程師職業(yè)培訓(xùn)班>二期課程中嵌入式linux應(yīng)用開發(fā)方面的重要內(nèi)容。不少學(xué)員對QT方面的內(nèi)容比較關(guān)注,所以在這里我們先對QT做一下簡單介紹。
QT
Qt是一個多平臺的C++圖形用戶界面應(yīng)用程序框架,由挪威 Trolltech 公司出品。它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的所用功能。Qt是完全面向?qū)ο蟮暮苋菀讛U展,并且允許真正地組件編程。
自1996年Qt進入商業(yè)領(lǐng)域開始,它已經(jīng)成為全世界范圍內(nèi)數(shù)千種成功的應(yīng)用程序的基礎(chǔ)。Qt也是流行的Linux桌面環(huán)境KDE 的基礎(chǔ),KDE是所有主要的Linux發(fā)行版的一個標(biāo)準(zhǔn)組件。
基本上,Qt 同 X Window (X Window是一種用于UNIX系統(tǒng)的標(biāo)準(zhǔn)圖形化用戶界面)上的 Motif、Openwin、GTK 等圖形界面庫和 Windows 平臺上的 MFC、OWL、VCL、ATL是同類型的東西,但是Qt 具有下列優(yōu)點:
● 優(yōu)良的跨平臺特性
Qt支持Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等操作系統(tǒng), Qt的跨平臺特性,是選擇Qt的一個非常重要的原因。對于相同功能的軟件,我們無須針對不同的操作系統(tǒng)編寫不同程序,只需將相同的代碼針對不同的環(huán)境編譯即可;
● 面向?qū)ο?/p>
Qt 的良好封裝機制使得 Qt 的模塊化程度非常高,可重用性較好,對于用戶開發(fā)來說是非常方便的。Qt 提供了一種稱為 signals/slots(信號/槽) 的安全類型來替代 callback(回調(diào)函數(shù)),這使得各個元件之間的協(xié)同工作變得十分簡單;
● 豐富的API
● Qt 包括多達400個以上的 C++ 類,同時不斷擴展。
● 支持 2D/3D 圖形渲染,支持 OpenGL;
● XML 支持;
● 開放源碼
開放源優(yōu)勢包括一個活動的開放源開發(fā)員社團。由于Qt的不間斷開發(fā),以及完整的代碼透明性,以允許Qt開發(fā)員進行徹底深入地查看,進行自定義并擴展Qt來滿足其獨特的需求。
Qt/Embedded
Qt/Embedded是Qt的嵌入式版本,它在原始Qt的基礎(chǔ)上,做了許多出色的調(diào)整以適合嵌入式環(huán)境。同Qt/X11相比,Qt/Embedded很節(jié)省內(nèi)存,因為它不需要X server或是Xlib庫,它在底層摒棄了Xlib,采用framebuffer作為底層圖形接口。Qt/Embedded的應(yīng)用程序可以直接寫內(nèi)核幀緩沖,因此它在嵌入式linux系統(tǒng)上的應(yīng)用非常廣泛。
最后再了解下Qtopia
在Qt/Embedded版本4之前,Qt/Embedded和Qtopia是兩套不同的程序,Qt/Embedded是基礎(chǔ)類庫,Qtopia是構(gòu)建于Qt/Embedded之上的一系列應(yīng)用程序。但從版本4開始,Trolltech將Qt/Embedded并入了Qtopia,并推出了新的Qtopia4。在該版中,原來的Qt/Embedded被稱為Qtopia Core,作為嵌入式版本的核心,既可以與Qtopia配合,也可以獨立使用。原來的Qtopia則被分成幾層,核心的應(yīng)用框架和插件系統(tǒng)被稱為 Qtopia Platform,上層的應(yīng)用程序則按照不同的目標(biāo)用戶分為不同的包,如Qtopai PDA,Qtopia PhONe等。
于Qt方面的內(nèi)容,除了Qt、基于 Framebuffer(幀緩沖) 的 Qt /Embedded外,還有快速開發(fā)工具 Qt Designer以及國際化工具 Qt LinguiST 等。