linux圖形界面設(shè)計綜述【文獻綜述】_第1頁
已閱讀1頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)論文文獻綜述</b></p><p><b>  電子信息工程</b></p><p>  Linux圖形界面設(shè)計綜述</p><p>  摘要:Linux 圖形界面設(shè)計中一般應(yīng)用X11、OpenGUI和QT等GUI設(shè)計平臺。Qt是一個跨平臺的C++圖形用戶界面應(yīng)用程序框架,得到了越來越廣

2、泛的應(yīng)用[1]。重點對Qt的核心特性——信號與槽機制進行了分析,詳細描述Qt跨平臺的開發(fā)工具及其開發(fā)程序的方便性,功能的強大,高性能等方面的特點和優(yōu)勢[2]。</p><p>  關(guān)鍵字:X11;OpenGUI;圖形用戶界面(GUI);Qt; 信號與槽</p><p><b>  1. 引言</b></p><p>  在嵌入式系統(tǒng)這個IT產(chǎn)業(yè)

3、的新領(lǐng)域,Linux以其所具備的穩(wěn)定、高效、易定制、易裁減、硬件支持廣泛的特點 ,結(jié)合其免費、源碼開放的特征。使得Linux在嵌入式操作系統(tǒng)中的地位越來越重要[3]。嵌入式系統(tǒng)是以應(yīng)用為中心以計算機技術(shù)為基礎(chǔ)且軟硬件均可裁剪的專用計算機系統(tǒng),用于對功能、可靠性、成本、體積、功耗有嚴格要求的應(yīng)用領(lǐng)域系統(tǒng)[4]。嵌入式系統(tǒng)的發(fā)展已有 20多年的歷史,雖然目前已出現(xiàn)了很多基于Linux的嵌入式系統(tǒng),但由于嵌入式系統(tǒng)本身硬件的條件限制,常用PC

4、機的GUI系統(tǒng)不適合在其上運行。嵌入式系統(tǒng)對GUI有著特殊的要求:由于嵌入式系統(tǒng)對實時性要求非常高,對GUI的要求也高,所以這種系統(tǒng)一般不宜建立在龐大臃腫、非常消耗系統(tǒng)資源的操作系統(tǒng)和GUI之上,如Windows或X Window均過于龐大和臃腫.因此,這些系統(tǒng)對輕型GUI的需求更加突出.另外嵌入式系統(tǒng)往往是一種定制設(shè)備。它們對GUI的需求也必須是可定制的[5].所以,嵌入式系統(tǒng)對GUI的基本要求包括輕型、占用資源少、高性能、高可靠性和

5、可配置[6]。</p><p>  2.Linux圖形界面編程的概述</p><p>  2.1 X windows XFree86 4.X(帶幀緩沖區(qū)支持的X11R6.4)</p><p>  X Window 是高度可配置的,它只是定義了一系列最基本的顯示功能調(diào)用,而沒有規(guī)定的圖形窗口的樣式[6]。圖形窗口的樣式由程序員開發(fā)的窗口程序完成,從而使得X Windo

6、w的風格多種多樣,用戶可根據(jù)自己的喜好定制圖形界面。</p><p>  1984年,麻省理工學院(MIT)電腦科學研究室開發(fā)X Window。1989年,MIT和數(shù)學設(shè)備公司(DEC)對X Window協(xié)議進行重新設(shè)計,推出了X Window第11版,即X11[7]。</p><p>  XFree86 是一個由XFree86 Project公司開發(fā)的可以重復(fù)分發(fā)、開放源碼的X wind

7、ow系統(tǒng)。X window系統(tǒng)X(11)為應(yīng)用程序以圖形方式進行顯示提供了資源,并且它是Unix和類。Unix的機器上最常用的窗口系統(tǒng).它很小但很有效,可運行在眾多的硬件上,對網(wǎng)絡(luò)透明并且有良好的文檔說明.X11為窗口管理、事件處理、同步和客戶機間通信提供強大的功能, 并且大多數(shù)開發(fā)人員已經(jīng)熟悉了它的API。X11具有對內(nèi)核幀緩沖區(qū)的內(nèi)置支持,并占用非常少的資源,這非常有助于內(nèi)存相對較少的設(shè)備。X服務(wù)器支持VGA和非VGA圖形卡,它對顏

8、色深度1?2?4?8?16和32提供支持,并對渲染提供內(nèi)置支持,最新的發(fā)行版是XFree86 4.1.0.</p><p>  X11的優(yōu)點包括:幀緩沖區(qū)體系結(jié)構(gòu)的使用提高了系統(tǒng)性能,占用的資源相對很小-大小在600K~700K的范圍內(nèi),這使它很容易在小型設(shè)備上運行;非常好的支持:在線有許多文檔可用,還有許多專用于XFree86開發(fā)的郵遞列表;X API非常適合擴展。</p><p>  

9、X11的缺點包括:比最近出現(xiàn)的嵌入式GUI工具性能差;與Nano-X或QT/Embedded相比, XFree86需要更多的內(nèi)存[6]. </p><p>  2.2 OpenGUI</p><p>  OpenGUI在Linux系統(tǒng)上存在已經(jīng)很長時間了。最初的名字叫FastGL,只支持256色的線性顯存模式,但目前也支持其他顯示模式,并且支持多種操作系統(tǒng)平臺,如MS-DOS、QNX和Li

10、nux等,不過目前只支持x86硬件平臺。OpenGUI也分為三層。最低層是由匯編語言編寫的快速圖形引擎;中間層提供了圖形繪制API,包括線、矩形、圓弧等,并且兼容于Borland的BGI?。粒校?。第三層用C++編寫,提供了完整的GUI集。</p><p>  OpenGUI提供了一個二維繪圖原語,并提供對消息驅(qū)動的API及BMP文件格式的支持。OpenGUI功能強大,使用方便。OpenGUI支持鼠標和鍵盤的事件,

11、在Linux上基于F rame buffer或者SVGALib實現(xiàn)繪圖。由于其基于匯編實現(xiàn)的內(nèi)核并利用MMX指令進行了優(yōu)化, 所以O(shè)penGUI運行速度非???。但也由于它的內(nèi)核是用匯編實現(xiàn)的,所以可移植性受到了影響。在驅(qū)動程序一級,可移植性和性能是矛盾的,開發(fā)人員必須取其折衷。</p><p>  另外,OpenGUI采用LGPL條款發(fā)布。OpenGUI比較適合于基于x86平臺的實時系統(tǒng),但目前的發(fā)展基本停滯[6

12、]。</p><p>  2.3 MiniGUI</p><p>  MiniGUI是由清華大學魏永明主持開發(fā)并由許多自由軟件開發(fā)人員支持的一個自由軟件項目,其目標是為基于Linux的實時嵌入式系統(tǒng)提供一個輕量級的圖形用戶界面支持系統(tǒng)。 該項目自1998年底開始到目前為止,已經(jīng)非常成熟和穩(wěn)定。目前,已經(jīng)正式發(fā)布了穩(wěn)定版本1.0.9,并且開始了新版本系列的開發(fā),即MiniGUI Versi

13、on 1.1.x,該系列的正式版也即將發(fā)布[7]。</p><p>  MiniGUI的主要特點有:(1)遵循GPL條款的純自由軟件。(2)提供了完備的多窗口機制,包括:多個單獨線程中運行的多窗口;單個線程中主窗口的附屬;對話框和預(yù)定義的控件類(按鈕,單行和多行編輯框,列表框,進度條及工具欄等);消息傳遞機制。(3)多字符集和多字體支持,目前支持ISO88591,GB2312和ig5等字符集,并且支持各種光柵字體

14、和TrueType、Type 1等矢量字體。(4)支持全拼和五筆等漢字輸入法。(5)支持BMP,GIF,JPEG及PCX等常見圖像文件。(6)支持Windows的資源文件,如位圖、圖標、光標、 插入符、定時器及加速鍵等。(7)庫文件小,包括全部功能的庫文件大小為300KB左右。(8)可配置??筛鶕?jù)項目需求進行定制配置和編譯。(9)高穩(wěn)定性和高性能。MiniGUI已經(jīng)在Linux發(fā)行版安裝程序,CNC系統(tǒng)及藍點嵌入式系統(tǒng)等關(guān)鍵應(yīng)用程序中得

15、到了實際應(yīng)用??梢浦残院谩D壳?,MiniGUI!可以在X Window和Linux控制臺上運行。中科院EEOS 開發(fā)組已經(jīng)成功地將MiniGUI移植到了他們的POSIX兼容系統(tǒng)上。藍點軟件(北京)研發(fā)中心也已經(jīng)成功地</p><p>  另外,在MiniGUI幾年的發(fā)展過程中,有許多值得一提的技術(shù)創(chuàng)新點。正是由于這些技術(shù)上的創(chuàng)新,才使得MiniGUI更加適合實時嵌入式系統(tǒng)。而且MiniGUI的靈活性非常好,可以應(yīng)

16、用在包括手持設(shè)備、機頂盒、游戲終端等在內(nèi)的各種高端或低端嵌入式系統(tǒng)中。這些技術(shù)創(chuàng)新包括:(1)圖形抽象層。圖形抽象層對頂層API基本沒有影響,但大大方便了MiniGUI應(yīng)用程序的移植、調(diào)試等工作。目前包含三個圖形引擎,SVGALib、LibGGI以及直接基于Linux FrameBuffer的Native Engine,利用LibGGI時,可在X Window上運行MiniGUI應(yīng)用程序,并可非常方便地進行調(diào)試。與圖形抽象層相關(guān)的還有輸

17、入事件的抽象層。MiniGUI現(xiàn)在已經(jīng)被證明能夠在基于ARM 、MIPS、StrongARM以及PowerPC等的嵌入式系統(tǒng)上流暢運行。</p><p> ?。?)兩個不同架構(gòu)的版本。最初的MiniGUI運行在Pthread庫之上,這個版本適合于功能單一的嵌入式系統(tǒng),但存在系統(tǒng)健壯性不夠的缺點。在0.9.98版本中引入了MiniGUI-Lite版本,這個版本在提高系統(tǒng)健壯性的同時,通過一系列創(chuàng)新途徑,避免了傳統(tǒng)C

18、/S結(jié)構(gòu)的弱點,為功能復(fù)雜的嵌入式系統(tǒng)提供了一個高效、穩(wěn)定的GUI系統(tǒng)[6]。</p><p>  MiniGUI軟件架構(gòu)圖</p><p>  2.4 QT/Embedded</p><p>  Qt是一個跨平臺的C++圖形用戶界面庫,由挪威TrollTech公司出品,目前包括Qt/X11、基于Framebuffer的Qt Embedded、快速開發(fā)工具Qt De

19、signer及國際化工具Qt Linguist等。Qt的良好封裝機制使其模塊化程度非常高,可重用性較好,對于用戶開發(fā)來說是非常方便的[8]。Qt API和開發(fā)工具對所有支持平臺都是一致的,從而可以進行獨立于平臺的程序開發(fā)和配置。它使得跨平臺軟件編程直觀、簡易、方便。Qt提供了一種稱為“signals/slots” 的安全類型來替代callback回調(diào)函數(shù),使得各個控件之間的協(xié)同工作變得十分簡單[7]。</p><p&

20、gt;  Qt是面向?qū)ο蟮模茫Z言,它提供了signal(信號)和slot(槽)的對象通信機制,具有可查詢和可設(shè)計的屬性以及強大的事件和事件過濾器[6]。同時,它還具有字符國際化,即支持根據(jù)上下文進行國際化字符串翻譯。許多Qt基于QObject的繼承,通過標準C++技術(shù)實現(xiàn)[1]。</p><p>  2.5 Qt的特點和優(yōu)勢</p><p>  Q t 作為一種非常優(yōu)秀的編程工具, 具

21、有很多優(yōu)點和一些其它編程工具所不具備的特征。</p><p><b> ?、倜嫦?qū)ο?lt;/b></p><p>  Q t 是完全面向?qū)ο蟮腸+ +開發(fā)庫,使用它進行應(yīng)用程序的開發(fā), 可以充分利用其面向?qū)ο蠛湍K化的特征,從繁瑣的 x 編程中解脫出來,專注于程序本身的實現(xiàn)[9]。</p><p> ?、讵氂械?S i g n a l — S l

22、o t 機制</p><p>  S i g n a l — S l o t機制是 Q t 最重要的特征。在 MS — Wi n d o w s中,程序通過消息機制和事件循環(huán)來實現(xiàn)圖形對象行為的觸發(fā)和處理;在Q t 中,是在一個類中定義多個S i g na l和S l o t , S i g na l 就相當于是“事件”,而S l o t 就相當于是響應(yīng)事件的“方法”。為了實現(xiàn)“事件驅(qū)動”,需要將一個類的S i

23、g na l 和另一個類的S l o t 連接起來(使用 c o n n e c t ).采用這種機制是一種安全可靠的方法,它允許回調(diào)[10]。并支持對象之間在彼此不知道對方信息的情況下進行合作,這使Qt非常適合于真正的構(gòu)件編程。</p><p><b>  ③跨平臺的開發(fā)工具</b></p><p>  Qt 是一種跨平臺的工具包,它對編程者隱藏了在處理不同窗口系統(tǒng)

24、時的潛在問題, 使程序員避免了在文件處理,時間處理等方面存在的依賴操作系統(tǒng)的細節(jié)問題[11]。Q t 的跨平臺能力非常強,用它開發(fā)出來的軟件幾乎可以應(yīng)用于所有的操作系統(tǒng),如Microsoft Windows 95/98/2000/XP, Microsoft Windows NT, Linux,So l a f is, SunOS,HP—U X, Digital Unix( O S F/1 ) ,Irix ,Free BS

25、D,BSD/OS,SCO和X等 。</p><p><b> ?、荛_發(fā)程序的方便性</b></p><p>  Q t 提供了一個可視化的開發(fā)工具 Q t De s i g ne r ,使用該工具就像在 Wi n d o w s中使用 Vi s u a l C+ +那樣可以直接向項目中添加各種組件,而不需要一步一步地編寫代碼,這個特點是其它非可視化編程工具望塵莫及的[

26、12]。Q t D e s i g ne r中包含全面的聯(lián)機幫助文檔,包括超文本方式的 Q t Ma n u a l ?m a n幫助手冊頁和補充指南。這些幫助不論是對于初學者還是專業(yè)人士,無疑都是非常方便的。除此之外,Q t還為應(yīng)用程序的本地化提供完全支持, 所有用戶界面文本都可以基于“消息翻譯表”被譯成各國語言。它還完全支持雙字節(jié)的 1 6 b i t 國際字符標準[2]。</p><p><b>

27、 ?、輳姶蟮墓δ?lt;/b></p><p>  Q t 的強大功能主要體現(xiàn)在以下幾方面:擁有一套完整的組件,用戶可以直接基于這些現(xiàn)成的組件開發(fā)出優(yōu)秀的界面;擁有豐富的 A P I函數(shù),大概有2 5 0多個c++類;優(yōu)越的繪畫功能和2 D / 3 D圖形潤色功能,Q t的繪畫工具類 Q p a i n t e r ,在任意一個繪畫設(shè)備上都可以潤色圖形,對于更高級的2 D / 3 D圖形可以結(jié)合使用O p

28、e n G L和Q t,用 O p e n G L就像用任意一個Q t組件一樣方便,比純粹使用 O p e n G L作的3 D圖形更好?! ?lt;/p><p><b> ?、薷咝阅艿墓ぞ?lt;/b></p><p>  Q t 是直接基于Xl i b的,并不依賴 Mo t i f 工具包,所以它的執(zhí)行效率比一般的基于平臺的代碼的執(zhí)行效率要高[13]。據(jù)此,使用 Q t

29、D e s i g ne r 作為L i n u x下圖形用戶界面應(yīng)用程序的開發(fā)工具,應(yīng)該是非常理想的。</p><p>  QT4軟件圖形界面開發(fā)工具</p><p><b> ?。晨偨Y(jié)</b></p><p>  本文介紹了Linux系統(tǒng)下的X11和OpenGUI、MiniGUI圖形界面設(shè)計優(yōu)缺點,并與QT做比較,重點對 Qt 的核心特性—

30、信號與槽機制進行了分析,介紹了Qt 在構(gòu)建圖形界面時各個方面的卓越特性。Qt 的優(yōu)越特性保證了本程序的高效性,方便性和跨平臺性[14]。隨著時間的推移,使用Qt來開發(fā)圖形用戶界面程序會變得越來越廣泛[15]。</p><p><b>  參考文獻:</b></p><p>  [1] 王浩南等.基于嵌入式Linux系統(tǒng)下的Qt開發(fā)[J].電腦開發(fā)與應(yīng)用刊,2010,1

31、,23(1):11~13.</p><p>  [2] Trolltech. Qt-Cross-Platform C++ Development-Trolltech[EB/OL]. </p><p>  2007. http://www.trolltech.com/products/qt/features/index.</p><p>  [3] 陳沨等.基于嵌入式

32、Linux的圖形界面顯示系統(tǒng)的設(shè)計[J].微計算機信息,2004,20(1):76~77.</p><p>  [4] 袁媛等.C++類庫Qt在數(shù)值模擬軟件開發(fā)中的應(yīng)用[J].現(xiàn)代電子技術(shù)刊,2010,(2):80~83.</p><p>  [5] 彭均鍵等.基于Qt的嵌入式GUI開發(fā)平臺的搭建[J].2010,26(2):40~42.</p><p>  [6]

33、 孫少華等.基于嵌入式Linux系統(tǒng)的圖形用戶界面綜述[J].微型機與應(yīng)用,2005(4)4~6.</p><p>  [7] 倪繼利.Qt及Linux操作系統(tǒng)窗口設(shè)計[M].北京:電子工業(yè)出版社,2006,4.</p><p>  [8] 桂凌.基于ARM和Qt的嵌入式流媒體播放器的設(shè)計[J].電腦與計算機技術(shù)刊,2010,4,6(10):2466~2467.</p>&l

34、t;p>  [9] 丁建軍等.QT/E在智能測試平臺下的移植與應(yīng)用[J].湖北工業(yè)大學學報,2010,4,25(2):</p><p><b>  19~21.</b></p><p>  [10] 盧華偉等.基于Qt/Qwt的操作監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J]. 微計算機信息刊,2010,26(1):72~74.</p><p>  [11

35、] 劉艷青等.基于Qt4的圖形用戶界面程序的設(shè)計與實現(xiàn)[J].現(xiàn)代計算機刊,2009,3,(303):170~172.</p><p>  [12] 李繼進等.基于Qt的通用態(tài)勢顯示平臺的設(shè)計與實現(xiàn)[J].信息化研究刊,2010,5,36(5):20~22.</p><p>  [13] 李海龍.基于QT-2.3.7和ARM-Linux的遠程通信系統(tǒng)設(shè)計[J].河北,信息與電腦刊,201

36、0,5:55~56.</p><p>  [14] 王子強等.Linux 下圖形用戶界面程序的開發(fā)與實現(xiàn)[J].計算機應(yīng)用與軟件刊,2005,6,22(6):81~83 .</p><p>  [15] Jasmin Blanchette,Mark Summerfield.C++ GUI Programming with Qt3[M].Prentice Hall in associatio

溫馨提示

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

評論

0/150

提交評論