嵌入式linux圖形用戶接口(模板).ppt_第1頁(yè)
嵌入式linux圖形用戶接口(模板).ppt_第2頁(yè)
嵌入式linux圖形用戶接口(模板).ppt_第3頁(yè)
嵌入式linux圖形用戶接口(模板).ppt_第4頁(yè)
嵌入式linux圖形用戶接口(模板).ppt_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第6章 嵌入式linux圖形用戶接口,第六章 嵌入式linux圖形用戶接口,本章主要講述嵌入式Linux圖形用戶界面(GUI,Graphic User Interface)的有關(guān)內(nèi)容,即嵌入式GUI。本章首先簡(jiǎn)單介紹嵌入式GUI的相關(guān)內(nèi)容;之后以Qt為例詳細(xì)介紹其移植和編程操作;最后詳細(xì)介紹基于QTE的Qtopia平臺(tái)的移植和編程操作。GUI編程能夠提高操作的人性化,優(yōu)化產(chǎn)品性能,減輕用戶認(rèn)知負(fù)擔(dān),使程序更適合用戶的操作需求。 主要內(nèi)容 第一節(jié) 嵌入式GUI簡(jiǎn)介 第二節(jié) 嵌入式GUI Qt 第三節(jié) 基于Qt技術(shù)的Qtopia,1,內(nèi)容: 隨著嵌入式系統(tǒng)的廣泛應(yīng)用,PDA、機(jī)頂盒、DVD/VCD

2、播放機(jī)及WAP手機(jī)等嵌入式設(shè)備已經(jīng)迅速普及,這些設(shè)備同時(shí)應(yīng)該擁有華麗美觀、易于操作的圖形用戶界面。因此,在嵌入式系統(tǒng)中,特別是在一些消費(fèi)類產(chǎn)品中,也逐漸出現(xiàn)了圖形用戶界面(GUI) 一、嵌入式GUI的特點(diǎn) 二、嵌入式GUI的種類,第一節(jié) 嵌入式GUI簡(jiǎn)介,2,嵌入式系統(tǒng)一般不會(huì)建立在龐大的操作系統(tǒng)以及GUI之上,比如Windows或X Window,它們對(duì)實(shí)時(shí)性的要求非常高,對(duì)GUI的要求也更高。而且,嵌入式系統(tǒng)往往是一種定制設(shè)備,對(duì)GUI的需求各不相同,有些系統(tǒng)只要求一些圖形功能,而有些系統(tǒng)則要求完備的GUI支持,因此,GUI也必須是可定制的。由于受到當(dāng)前嵌入式系統(tǒng)本身特點(diǎn)的影響,并受其發(fā)展

3、限制,所以嵌入式系統(tǒng)中的GUI應(yīng)該有如下特點(diǎn): 占用的存儲(chǔ)空間以及運(yùn)行時(shí)占用資源少。 運(yùn)行速度以及響應(yīng)速度快。 可靠性高。 便于移植和定制。,第一節(jié) 嵌入式GUI簡(jiǎn)介 一、嵌入式GUI的特點(diǎn),3,目前,常用的嵌入式GUI系統(tǒng)有QT/Embedded、MicroWindows、MiniGUI和OenGUI等。下面對(duì)這幾種常用的系統(tǒng)做一下簡(jiǎn)單介紹。 1. QT/Embedded QT/Embedded是著名的QT庫(kù)開發(fā)商TrollTech開發(fā)的基于FrameBuffer、面向嵌入式系統(tǒng)的QT版本。它的主要特點(diǎn)是界面美觀、色彩配比好,使用與QT/Windows和QT/X11完全一致的API接口,許多

4、基于QT的程序可以非常方便地移植到嵌入式系統(tǒng);同時(shí)它具有豐富的模塊,用戶可以根據(jù)需要選擇QT/Embedded的特性集合。QT/Embedded實(shí)現(xiàn)了對(duì)下層輸入設(shè)備的驅(qū)動(dòng)和底層圖形接口以及各基類和API。 不過(guò),QT/Embedded對(duì)于系統(tǒng)資源的要求非常高,運(yùn)行時(shí)需要較大的存儲(chǔ)空間和運(yùn)行空間;而且它是基于C+實(shí)現(xiàn)的,而這種C+接口對(duì)于嵌入式系統(tǒng)中的某些應(yīng)用來(lái)說(shuō)顯得比較臃腫。,第一節(jié) 嵌入式GUI簡(jiǎn)介 二、嵌入式GUI的種類,3,2. MicroWindows Microwindows是由美國(guó)CenturySoftware公司開發(fā)的開放源碼的嵌入式GUI項(xiàng)目。它不需要其他圖形系統(tǒng)的支持,可以充

5、分利用Linux提供的Framebuffer機(jī)制來(lái)進(jìn)行圖形顯示。同時(shí)在底層提供了對(duì)多種芯片的支持,并基本上用C語(yǔ)言實(shí)現(xiàn),因此移植性較強(qiáng)。Microwindows支持兩種API:ECMAAPIW(類Win32API)和Nano-XAPIs。這些API對(duì)Win32和XWindow系統(tǒng)有很好的兼容性,使程序可以很容易地從其他系統(tǒng)上移植過(guò)來(lái)。 由于MicroWindows為了與XWindow的兼容,采用了傳統(tǒng)的基于UNIXSocket的客戶端/服務(wù)器結(jié)構(gòu)。此是,客戶端的畫圖、窗口建立等操作都是通過(guò)套接字與服務(wù)器通信。在這種情況下,系統(tǒng)就非常依賴于UNIXSocket,而UNIXSocket的傳遞需要通

6、過(guò)內(nèi)核,這在一些對(duì)實(shí)時(shí)性要求比較高的系統(tǒng)里就不太有利。而且,Microwindows基本上是用C語(yǔ)言實(shí)現(xiàn)的,雖然增強(qiáng)了可移植性,但也導(dǎo)致了系統(tǒng)的運(yùn)行效率不高。,第一節(jié) 嵌入式GUI簡(jiǎn)介 二、嵌入式GUI的種類,5,3. MiniGUI MiniGUI是我國(guó)國(guó)內(nèi)自主開發(fā)、比較成熟的一個(gè)圖形用戶界面系統(tǒng),面向基于Linux的實(shí)時(shí)嵌入式系統(tǒng),使用現(xiàn)有成熟的圖形引擎(SV2GALib/LibGGI),采用類似WinCE的線程機(jī)制(目前MiniGUILite版本改用微客戶端/服務(wù)器模式來(lái)提供對(duì)多進(jìn)程的支持),集成了多字體和多字符集,支持硬件加速能力,充分利用顯示內(nèi)存。 MiniGUI利用線程之間的同步操

7、作,實(shí)現(xiàn)了客戶線程和服務(wù)線程之間的微客戶端/服務(wù)器結(jié)構(gòu),因?yàn)樗目蛻艉头?wù)器是同一進(jìn)程的兩個(gè)不同線程。它的核心實(shí)現(xiàn)主要體現(xiàn)在消息隊(duì)列數(shù)據(jù)結(jié)構(gòu)的使用上。 4. OpenGUI OpenGUI在Linux系統(tǒng)上已經(jīng)存在很長(zhǎng)時(shí)間了。這個(gè)庫(kù)是用C+編寫的,只提供C+接口。OpenGUI基于一個(gè)用匯編語(yǔ)言實(shí)現(xiàn)的x86圖形內(nèi)核,提供了一個(gè)高層的C/C+圖形接口。OpenGUI提供了二維繪圖函數(shù)原型、消息驅(qū)動(dòng)的API及BMP文件格式支持。OpenGUI功能強(qiáng)大,使用方便,支持鼠標(biāo)和鍵盤事件,在Linux上基于FrameBuffer實(shí)現(xiàn)繪圖。由于OpenGUI基于匯編實(shí)現(xiàn)內(nèi)核并利用MMX指令進(jìn)行了優(yōu)化,因此運(yùn)

8、行速度非??欤强梢浦残允艿搅擞绊?。,第一節(jié) 嵌入式GUI簡(jiǎn)介 二、嵌入式GUI的種類,6,一、Qt與Qt/Embedded簡(jiǎn)介 二、Qt的特點(diǎn) 三、Qt的執(zhí)行過(guò)程 四、Qt的插槽機(jī)制 五、一個(gè)完整的Qt程序 六、QtDesigner介紹,第二節(jié) 嵌入式GUI Qt,7,Qt是Trolltech公司的標(biāo)志性產(chǎn)品,是一個(gè)跨平臺(tái)的C+圖形用戶界面(GUI)工具包。Qt的最大特點(diǎn)就是支持多平臺(tái)處理,因?yàn)镼t對(duì)不同平臺(tái)的專門API進(jìn)行了封裝。 Qt /Embedded是在嵌入式環(huán)境下所使用的Qt,具有Qt 在桌面系統(tǒng)的所有功能,是Trolltech公司為嵌入式設(shè)備上的圖形用戶界面和應(yīng)用開發(fā)而定制的工

9、具開發(fā)包,第二節(jié) 嵌入式GUI Qt 一、Qt與Qt/Embedded簡(jiǎn)介,8,面向?qū)ο螅篞t使用模塊設(shè)計(jì),并注重軟件構(gòu)件或元素的可重用性。 構(gòu)件支持:Qt提供信號(hào)(signal)和插槽(slot)概念,這是一種類型安全的方法,它允許回調(diào),并支持對(duì)象之間在彼此不知道對(duì)方信息的情況下進(jìn)行合作,這使得Qt適合于真正的構(gòu)件編程。 友好的聯(lián)機(jī)幫助:Qt提供了大量的聯(lián)機(jī)參考文檔,有超文本HTML方式,也有Linix幫助手冊(cè)頁(yè)和補(bǔ)充說(shuō)明。對(duì)于初學(xué)者,其中的指南將一步步地介紹如何進(jìn)行Qt編程。 便利性: Qt是一種跨平臺(tái)的GUI工具包,它對(duì)編程者隱藏了在處理不同窗口系統(tǒng)時(shí)潛在的問(wèn)題,Qt定義了一些類來(lái)隱藏在

10、不同操作系統(tǒng)上不同處理方式下的細(xì)節(jié)問(wèn)題。,第二節(jié) 嵌入式GUI Qt 二、Qt的特點(diǎn),9,用戶自定義:使用其他一些工具包時(shí)經(jīng)常會(huì)遇到這樣一種情況,沒(méi)有真正適合需求的組件,聲稱自定義的組件對(duì)用戶來(lái)說(shuō)就像一個(gè)黑匣子。而在Qt中生成用戶自定義的組件非常簡(jiǎn)單,而且易于修改組件的行為。 國(guó)際化:Qt為本地化應(yīng)用提供了完全的支持,所有用戶界面文本都可以基于消息翻譯表被翻譯成各國(guó)語(yǔ)言,Qt還支持雙字節(jié)16位國(guó)際字符標(biāo)準(zhǔn)。 豐富的API函數(shù):Qt為專業(yè)應(yīng)用提供了大量的函數(shù),在Qt的API中含有大約250個(gè)C+類,大多數(shù)類都是GUI專有的。 可用戶化外觀:Qt支持主題,基于Qt的應(yīng)用程序能夠在Windows外觀

11、、Motif外觀,以及其他一些用戶化外觀主題之間切換。 完整的一套組件工具:Qt編程的基本模塊稱之為組件,組件是用戶界面的組成部分,Qt含有用來(lái)創(chuàng)建專業(yè)外觀的用戶界面所需要的所有組件,第二節(jié) 嵌入式GUI Qt 二、Qt的特點(diǎn),10,Qt的執(zhí)行過(guò)程如圖6-2所示。Qt應(yīng)用程序初始化之后,在Qt庫(kù)的支持下響應(yīng)相應(yīng)的處理事件并且返回。,第二節(jié) 嵌入式GUI Qt 三、Qt的執(zhí)行過(guò)程,11,該實(shí)現(xiàn)過(guò)程需要Qt最主要的三個(gè)基類:QObject類、QApplication類和QWidget類。 QObject QObject類是所有能夠處理信號(hào)、插槽和事件的Qt對(duì)象的基類,能夠創(chuàng)建帶有父對(duì)象及其名字的對(duì)

12、象,對(duì)象的父對(duì)象可以看作該對(duì)象的所有者。 QApplication QApplication類負(fù)責(zé)GUI應(yīng)用程序的控制流和主要設(shè)置。它包括主事件循環(huán)體,負(fù)責(zé)處理和調(diào)度所有來(lái)自窗口系統(tǒng)和其他資源的事件,并且處理應(yīng)用程序的開始、結(jié)束以及會(huì)話管理,還包括系統(tǒng)和應(yīng)用程序方面的設(shè)置。 QWidget QWidget類是所有用戶接口對(duì)象的基類,它繼承了QObject類的屬性。組件是用戶界面的單元組成部分,它接收來(lái)自鼠標(biāo)、鍵盤和其他窗口系統(tǒng)的事件,并且繪制到屏幕上。QWidget類有很多成員函數(shù),但一般不直接使用,而是通過(guò)子類繼承來(lái)使用其函數(shù)功能。例如,QPushButton、QlistBox等都是它的子類

13、。,第二節(jié) 嵌入式GUI Qt 三、Qt的執(zhí)行過(guò)程,12,在Qt程序中,事件處理采用了信號(hào)(signal)和插槽(slot)機(jī)制。信號(hào)和插槽機(jī)制的好處是不需要調(diào)用翻譯表,節(jié)省資源。利用信號(hào)和插槽進(jìn)行對(duì)象間的通信是Qt最主要的特征之一。 當(dāng)對(duì)象狀態(tài)發(fā)生改變的時(shí)候,發(fā)出signal通知所有的slot接收signal,盡管它并不知道哪些函數(shù)定義了slot,而slot也不知道要接收怎樣的signal。signal和slot機(jī)制真正實(shí)現(xiàn)了封裝的概念,但它們之間并不是一一對(duì)應(yīng)的。,第二節(jié) 嵌入式GUI Qt 四、Qt的插槽機(jī)制,13,顯然,由右圖可知,同一個(gè)信號(hào)可以連接到多個(gè)插槽,多個(gè)信號(hào)也可以連接到同一

14、個(gè)插槽之中。隨時(shí)可以建立一個(gè)連接,或者取消一個(gè)連接。不過(guò)取消一個(gè)連接不是很常用,因?yàn)楫?dāng)一個(gè)對(duì)象被刪除后,它所包含的連接都會(huì)被自動(dòng)取消。,本節(jié)給出一個(gè)例子,首先產(chǎn)生一個(gè)Qapplication類的實(shí)例,然后定義窗口實(shí)例并把它作為程序的主窗口,最后調(diào)用show()和exec()方法,使自動(dòng)界面作為主界面,程序進(jìn)入消息循環(huán)。代碼如下: #include #include int main(int argc, char *argv) QApplication app (argc, argv); QLabel *hello = new QLabel(Hello Qt/Embedded!, 0); app

15、.setMainWidget(hello); hello-show(); return app.exec(); ,第二節(jié) 嵌入式GUI Qt 五、一個(gè)完整的Qt程序,14,Qt應(yīng)用程序可以用Qt Desinger來(lái)編寫。Qt Designer的功能十分強(qiáng)大,并且提供了大量可供編程使用的組件,從而省略了許多重復(fù)性的工作,可以減少程序的開發(fā)周期 Qt Designer可以新建工程,并且在工程文件中自動(dòng)生成關(guān)于窗體文件的.cpp、.h文件和main.cpp文件。其中,.cpp文件和.h文件也可以通過(guò)uic工具生成。之后可以通過(guò)progen命令生成,通過(guò)tmake工具生成makefil

16、e文件,再make即可得到相應(yīng)的Qt應(yīng)用程序。,第二節(jié) 嵌入式GUI Qt 六、QtDesigner介紹,15,一、Qtopia簡(jiǎn)介 二、Qtopia的功能 三、Qtopia編程,第三節(jié) 基于Qt技術(shù)的Qtopia,16,Qtopia是由Trolltech公司基于Qt/Embedded庫(kù),專門針對(duì)采用嵌入式Linux系統(tǒng)的消費(fèi)電子設(shè)備所開發(fā)的一套應(yīng)用程序包和開發(fā)庫(kù)。 Qtopia平臺(tái)是用于創(chuàng)建基于Linux設(shè)備的應(yīng)用程序框架,并且包含豐富的用戶應(yīng)用程序。Qtopia的設(shè)計(jì)利用了嵌入式Linux的高度優(yōu)化、高內(nèi)存效率的各種功能,為眾多的多應(yīng)用程序設(shè)備提供主要的通用功能。Qtopia軟件分為4個(gè)主

17、要層次,第三節(jié) 基于Qt技術(shù)的Qtopia 一、Qtopia簡(jiǎn)介,17,Qtopia主要有以下功能: 可定制的用戶界面:Qtopia支持每像素24位,并且集成了可縮放矢量圖形(SVG)。 增強(qiáng)的輸入法:多種鍵盤輸入法。 廣泛的國(guó)際化支持:包括擴(kuò)展的Unicodc支持,以及從右至左的文本模式。 安全執(zhí)行:這是在Linux的安全特點(diǎn)基礎(chǔ)之上構(gòu)建。 Java集成:Java應(yīng)用程序可以與Qtopia無(wú)縫集成。 應(yīng)用程序管理:使用Qtopia平臺(tái)的服務(wù)器/啟動(dòng)程序來(lái)控制進(jìn)程間通信。 插件程序框架:Qtopia平臺(tái)的功能可以通過(guò)插件程序框架進(jìn)行擴(kuò)展。 SQL數(shù)據(jù)庫(kù):Qtopia平臺(tái)的API使應(yīng)用程序脫離了

18、對(duì)數(shù)據(jù)庫(kù)的依賴。 緊湊的視窗系統(tǒng):Qtopia平臺(tái)免除了嵌入式Linux對(duì)X11的需求。 開放的開發(fā)環(huán)境。,第三節(jié) 基于Qt技術(shù)的Qtopia 二、Qtopia的功能,18,在Qtopia平臺(tái)上發(fā)布應(yīng)用程序時(shí),需要三個(gè)文件:執(zhí)行文件、啟動(dòng)器文件和圖標(biāo)文件。執(zhí)行文件就是前面講到的編譯鏈接后生成的Qt可執(zhí)行文件,可以根據(jù)需要編譯鏈接生成宿主機(jī)上運(yùn)行的程序或開發(fā)板上運(yùn)行的程序。圖標(biāo)文件是一個(gè)2222大小的.png文件。啟動(dòng)器文件是一個(gè).desktop文件,用于描述Qtopia應(yīng)用程序的屬性,如可執(zhí)行文件名稱、桌面圖標(biāo)文件名稱、所屬程序集類型以及幫助文件名稱等。以progressbar程序?yàn)槔?,?chuàng)建一個(gè)名為progressbar.desktop的啟動(dòng)器文件,具體內(nèi)容如下: Desktop Entry Comment=A Progressbar Program Exec=progressbar Icon=progressbar Type=Application Name=progressbar,第三節(jié) 基于Qt技術(shù)的Qtopia 三、Qtopia編程,19,將三個(gè)文件分別復(fù)制到相應(yīng)的目錄: 可執(zhí)行文

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論