嵌入式用戶圖形界面編程.ppt
《嵌入式用戶圖形界面編程.ppt》由會員分享,可在線閱讀,更多相關(guān)《嵌入式用戶圖形界面編程.ppt(26頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
嵌入式用戶圖形界面編程,嵌入式圖形系統(tǒng)簡介基于Qt/Embedded的嵌入式GUI設(shè)計(jì),1、嵌入式圖形系統(tǒng)簡介,1.1Qt/EmbeddedQt/Embedded(簡稱QtE)是一個專門為嵌入式系統(tǒng)設(shè)計(jì)圖形用戶界面的工具包。Qt是挪威Trolltech軟件公司的產(chǎn)品,它為各種系統(tǒng)提供圖形用戶界面的工具包,QtE就是Qt的嵌入式版本。,1.1Qt/Embedded,使用QtE,開發(fā)者可以:用QtE開發(fā)的應(yīng)用程序要移植到不同平臺時,只需要重新編譯代碼,而不需要對代碼進(jìn)行修改??梢噪S意設(shè)置程序界面的外觀??梢苑奖愕貫槌绦蜻B接數(shù)據(jù)庫。可以使程序本地化。可以將程序與Java集成。,嵌入式系統(tǒng)地要求是小而快速,而QtE就能幫助開發(fā)者為滿足這些要求開發(fā)強(qiáng)壯地應(yīng)用程序。QtE是模塊化和可裁剪地。開發(fā)者可以選取他所需要的一些特性,而裁剪掉所不需要的。這樣,通過選擇所需要的特性,QtE的映像變得很小,最小只有600K左右。,同Qt一樣,QtE也是用C++寫的,雖然這樣會增加系統(tǒng)資源消耗,但是卻為開發(fā)者提供了清洗的程序框架,使開發(fā)者能夠迅速上手,并且能夠方便地編寫自定義的用戶界面程序。由于QtE是作為一種產(chǎn)品推出,所以它有很好的開發(fā)團(tuán)體和技術(shù)支持,這對于使用QtE的開發(fā)者來說,方便開發(fā)過程,并增加了產(chǎn)品的可靠性。,總的來說,QtE擁有下面一些特征:擁有同Qt一樣的API;開發(fā)者只需要了解Qt的API,不用關(guān)心程序所用到的系統(tǒng)與平臺它的結(jié)構(gòu)很好地優(yōu)化了內(nèi)存和資源地利用。擁有自己的窗口系統(tǒng):QtE不需要一些子圖形系統(tǒng)。它可以直接對底層的圖形驅(qū)動進(jìn)行操作。模塊化:開發(fā)者可以根據(jù)需要自己定制所需要的模塊。代碼公開以及擁有十分詳細(xì)的技術(shù)文檔幫助開發(fā)者。強(qiáng)大的開發(fā)工具。,與硬件平臺無關(guān):QtE可以應(yīng)用在所有主流平臺和CPU上。支持所有主流的嵌入式Linux,對于在Linux上的QtE的基本要求只不過是FrameBuffer設(shè)備和一個C++編譯器(如gcc)。Qte同時也支持很多實(shí)時的嵌入式系統(tǒng),如QNX和WindowsCE。提供壓縮字體格式:即使在很小的內(nèi)存中,也可以提供一流的字體支持。支持多種的硬件和軟件的輸入。支持Unicode,可以輕松地使程序支持多種語言。支持反鋸齒文本和Alpha混合的圖片。,,Trolltech公司在QtE的基礎(chǔ)上開發(fā)了一個應(yīng)用的環(huán)境—Qtopia,這個應(yīng)用環(huán)境為移動和手持設(shè)備開發(fā)。其特點(diǎn)就是擁有完全的、美觀的GUI,同時它也提供可上百個應(yīng)用程序用于管理用戶信息、辦公、娛樂、Internet交流等。已經(jīng)有很多公司采用了Qtopia來開發(fā)他們主流的PDA。,,QtE雖然公開代碼和技術(shù)文檔,但是它不是免費(fèi)的,當(dāng)開發(fā)者的商業(yè)化產(chǎn)品需要用到他的運(yùn)行庫時,必須向Trolltech公司支持license費(fèi)用(每套3美金),如果開發(fā)的東西不用于商業(yè)用途則不需要付費(fèi)。QtE由于平臺無關(guān)性和提供了很好的Gui編程接口,在許多嵌入式系統(tǒng)中得到了廣泛的應(yīng)用,是一個成功的嵌入式GUI產(chǎn)品。,1.2Microwindows,Mirowindows是嵌入式系統(tǒng)中廣為使用的一種圖形用戶接口,其官方網(wǎng)站是:http://www.microwindows.org。這個項(xiàng)目的早期目標(biāo)是在嵌入式Linux平臺上提供和普通個人電腦上類似的圖形用戶界面。作為PC上X-Windows的替代品,Microwindows提供了和X-Windows類似的功能,但是占用的內(nèi)存要少得多,根據(jù)用戶得配置,Microwindows占用得內(nèi)存資源在100KB-60KB。,1.2Microwindows,Microwindows支持多種外部設(shè)備得輸入,包括液晶顯示器、鼠標(biāo)和鍵盤等。在嵌入式Linux平臺上,從Linux2.2.x的內(nèi)核開始,為了方便圖形的顯示,使用了framebuffer的技術(shù)。Microwindows完全支持Linux最新framebuffer技術(shù),支持每個象素1位、2位、4位、8位、16位、24位和32位的色彩空間/灰度,并且通過調(diào)色板技術(shù)將RGB格式的顏色空間轉(zhuǎn)換成目標(biāo)機(jī)器上最相近的顏色,然后顯示出來。,1.2Microwindows,Microwindows的核心基于顯示設(shè)備接口,因此可移植行很好,microwindows有自己的Framebuffer,因此它并不局限于Linux開發(fā)平臺,在eCos、FreeBSD、RTEMS等操作系統(tǒng)上都能很好地運(yùn)行。此外,Microwindows能在宿主機(jī)上仿真目標(biāo)機(jī)。這意味著基于Linux的Microwindows應(yīng)用程序的開發(fā)和調(diào)試可以在普通的個人電腦上進(jìn)行,而不需要使用普通嵌入式軟件的“宿主機(jī)-目標(biāo)機(jī)”調(diào)試模式,從而大大加快了開發(fā)速度。Mincrowindows是完全免費(fèi)的一個用戶圖形系統(tǒng)。,1.3MiniGUI,MiniGUI是由北京飛漫軟件技術(shù)有限公司主持的一個自由軟件項(xiàng)目(遵循GPL條款),其目標(biāo)是為基于Linux的實(shí)時嵌入式系統(tǒng)提供一個輕量級的圖形用戶界面支持系統(tǒng)。MiniGUI為應(yīng)用程序定義了一組輕量級的窗口和圖形設(shè)備接口。利用這些接口,每個應(yīng)用程序可以建立多個窗口,而且可以在這些窗口中繪制圖形。用戶也可以利用MiniGUI建立菜單、按鈕、列表框等常見的GUI元素。,1.3MiniGUI,用戶可以將MiniGUI配置成“MiniGUI-Threads”或者“MiniGUI-Lite。運(yùn)行在MiniGUI-Threads上的程序可以在不同的線程中建立多個窗口,但所有的窗口在一個進(jìn)程中運(yùn)行。相反,運(yùn)行在MiniGUI-Lite上的每個程序是單獨(dú)的進(jìn)程,每個進(jìn)程也可以建立多個窗口。MiniGUI-Threads適合于具有單一功能的實(shí)時系統(tǒng),而MiniGUI-Lite則適合于類似于PDA和瘦客戶機(jī)等嵌入式系統(tǒng)。,1.2QTE和Qtopia開發(fā)模型,1.2.1QTE與QT/X11比較,1.2.1QTE與QT/X11比較,QT/Embedded通過QtAPI與LinuxI/O設(shè)施直接交互,成為嵌入式linux端口。同Qt/X11相比,QT/Embedded很節(jié)省內(nèi)存,其不需要一個X服務(wù)器或是Xlib庫,它在底層擯棄了Xlib,采用framebuffer(幀緩存)作為底層圖形接口。同時,將外部輸入設(shè)備抽象為keyboard和mouse輸入事件。QT/Embedded的應(yīng)用程序可以直接寫內(nèi)核緩沖幀,這可避免開發(fā)者使用繁瑣的Xlib/Server系統(tǒng)。,1.2.2Qtopia介紹,Qtopia是一種全方位的應(yīng)用開發(fā)平臺,它可用于基于嵌入式linux的PDA,移動電話,webpads,以及其他移動計(jì)算設(shè)備。Qtopia構(gòu)建于Qt/Embedded之上,是專為基于linux的消費(fèi)電子產(chǎn)品提供和創(chuàng)建圖形用戶界面而設(shè)計(jì)的。常見的有兩種版本:QtopiaPhone版:專為基于linux的智能電話和多功能電話設(shè)計(jì)。QtopiaPDA版:專為基于linux的PDA設(shè)計(jì)。,1.2.2Qtopia介紹,Qtopia特色:視窗操作系統(tǒng);同步窗口;開發(fā)環(huán)境;本地化支持;游戲和多媒體;PIM應(yīng)用程序;輸入法;個性化選項(xiàng);internet應(yīng)用程序;java集成;無線支持;,1.2.3Qt/Embedded開發(fā)模型,嵌入式軟件開發(fā)通常都采用交叉編譯的方式進(jìn)行,基于Qt/Embedded和Qtopia的GUI應(yīng)用開發(fā)也采用這樣的模式。先在宿主機(jī)上調(diào)試應(yīng)用程序,調(diào)試通過后,經(jīng)過交叉編譯移植到目標(biāo)板上。Qt/Embedded直接寫入幀緩存,在宿主機(jī)上則是通過qvfb(virtualframebuffer)來模擬幀緩存。qvfb是X窗口用來運(yùn)行和測試Qtopia應(yīng)用程序的系統(tǒng)程序。qvfb使用了共享內(nèi)存存儲區(qū)域(虛擬的幀緩存)來模擬幀緩存并且在一個窗口中模擬一個應(yīng)用程序來顯示幀緩存,顯示的區(qū)域被周期性的改變和更新。,1.2.3Qt/Embedded開發(fā)模型,宿主機(jī)移植所需工具及環(huán)境變量聲明:,1.2.4Qt/Embedded信號與插槽,(1)概述信號與插槽是QT自定義的一種通信機(jī)制,它獨(dú)立于標(biāo)準(zhǔn)的從C/C++語言。他的實(shí)現(xiàn)必須借助于moc(MetaObjectCompiler)的QT工具,他是一個C++預(yù)處理程序,為高層次的事件處理自動生成所需要的附件代碼。所謂圖形用戶接口的應(yīng)用就是對用戶的動作作出響應(yīng)。程序員則必須把事件和相關(guān)代碼聯(lián)系起來,這樣才能對事件作出正確的響應(yīng)。,,所有從QObject或其子類(例如Qwidget)派生的類都能夠包含信號和插槽。當(dāng)對象改變狀態(tài)時,信號就由該對象發(fā)射(emit)出來。插槽用于接收信號,但它們是普通的對象成員函數(shù)。一個插槽并不知道是否有任何消息與自己相連。用戶可以將很多信號與一個插槽相連,也可將單個消息與多個插槽進(jìn)行鏈接。,,(2)信號與插槽的實(shí)現(xiàn)信號:voidmysignal(intx);插槽:voidmyslot(intx);信號與插槽關(guān)聯(lián):connect(abutton,SIGNAL(clicked),SLOT(quit));,3、基于Qt/Embedded的嵌入式GUI設(shè)計(jì),3.1建立Qt/Embedded開發(fā)環(huán)境安裝x86-qtopia源代碼#tarxvzfx86-qtopia.tgz–C/sbc2410#cd/sbc2410/x86-qtopia#./build(shell程序)安裝SBC-2410X版本的arm-qtopia源代碼#tarxvzfarm-qtopia.tgz–C/sbc2410#cd/sbc2410/x86-qtopia#./build(shell程序),3.2設(shè)置鏈接庫,當(dāng)在PC上模擬Qtopia的運(yùn)行時,需要用到對應(yīng)Qt版本的庫文件,因此需要修改/etc/ld.so.conf文件以適應(yīng)剛剛安裝的Qt(Redhat安裝時帶有Qt庫,但不適合我們最新安裝的版本),修改后的ld.so.conf文件內(nèi)容如下:/sbc2410/x86-qtopia/qt/lib/sbc2410/x86-qtopia/qtopia/lib/usr/kerberos/lib/usr/X11R6/lib/usr/lib/sane修改完此文檔后,為了讓剛剛安裝的庫生效,必須運(yùn)行l(wèi)dconfig。至此Qt的開發(fā)緩建已經(jīng)建立。,3.3運(yùn)行Qtopia,(1)設(shè)置環(huán)境變量在/sbc2410/x86-qtopia/目錄下輸入“sourceset-env”或“.set-env”。(2)啟動虛擬幀緩存“$qvfb&”或“$qvfb-width640–height480&”(3)運(yùn)行qtopiaqpe&,- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 嵌入式 用戶 圖形界面 編程
鏈接地址:http://m.appdesigncorp.com/p-12857503.html