嵌入式Linux常用GUI系统
嵌入式Linux常用GUI系統(tǒng)
【整理】嵌入式Linux中常用的GUI(圖形用戶界面)系統(tǒng)
?Embedded??crifan??7年前 (2012-08-31)??1502瀏覽??0評論
網(wǎng)上找了一堆資料,還是這里:
Embedded Linux Graphics System
的解釋是,最新的,最全的,邏輯也是最清晰的。
所以,簡單摘錄其分類,并整理如下:
?
1.Linux中的一些GUI基礎(chǔ)架構(gòu)
1.1 X Window
1.2 SVGALib
1.3 FrameBuffer
1.4 LibGGI
?
2 Linux領(lǐng)域內(nèi)的高級圖形庫
2.1 Xlib及相關(guān)的其他一些圖形庫
2.2 SDL (Simple DirectMedia Layer)
2.3 Allegro
2.4 Mesa3D
2.5 DirectFB
?
3 嵌入式Linux系統(tǒng)中的GUI(圖形用戶界面)
3.1 NanoX(舊稱MicoroWindows)
http://www.microwindows.org/
3.2 OpenGUI(舊稱FastGL)
http://www.tutok.sk/fastgl/
3.3 Qt / Embedded
== Qt library TrollTech
TrollTech已被Nokia收購,所以之前主頁:
http://www.trolltech.com/
會跳轉(zhuǎn)到:
http://qt.nokia.com/
3.4 MiniGUI
http://www.minigui.org
?
【參考資料】
1.Embedded Linux Graphics System
2.基于Linux的嵌入式圖形界面(GUI),您使用哪個?
3.MiniGUI 其他同類軟件的區(qū)別
4.?Wind River Tilcon Graphics Suite
?
主流嵌入式開源GUI比較
https://blog.csdn.net/anyuliuxing/article/details/78431561
2017年11月03日 09:23:12?anyuliuxing?閱讀數(shù) 13966更多
所屬專欄:?MiniGUI
?版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。如果轉(zhuǎn)載,請注明出處。 https://blog.csdn.net/anyuliuxing/article/details/78431561
前言
本文主要說明了MicroWindows、MiniGui、QT、GTK+、OpenGUI和FLTK,第七小節(jié)是對比的詳細表格,內(nèi)容是根據(jù)網(wǎng)上的一些資料還有各大開源GUI的官網(wǎng)的資料整理而來,目的是為自己以后學(xué)習(xí)把握方向。
1 MicroWindows
首先看一下效果圖片吧,都在MicroWindows官網(wǎng)?
??
??
Microwindows 是一個著名的開放式源碼嵌入式GUI 軟件,遵循MPL協(xié)議,目的是把圖形視窗環(huán)境引入到運行Linux 的小型設(shè)備和平臺上。作為X Window 的替代品,Microwindows可以使用更少的RAM 和文件存儲空間(100K-600K)提供與X Window 相似的功能。Microwindows 允許設(shè)計者輕松加入各種顯示設(shè)備、鼠標、觸摸屏和鍵盤等。Microwindows 的可移植性非常好,基本上用 C 語言實現(xiàn),只有某些關(guān)鍵代碼使用了匯編以提高速度。Microwindows 支持ARM?芯片。盡管Microwindows 完全支持linux,但是它內(nèi)部的可移植結(jié)構(gòu)是基于一個相對簡單的屏幕設(shè)備接口,可在許多不同的RTOS和裸機上運行。?
Microwindows 的圖形引擎能夠運行在任何支持readpixel, writepixel,drawhorzline, drawvertline 和setpalette 的系統(tǒng)之上。在底層函數(shù)的支持之下,上層實現(xiàn)了位圖,字體,光標以及顏色的支持。系統(tǒng)使用了優(yōu)化的繪制函數(shù),這樣當用戶在移動窗口時可以提供更好的響應(yīng)。內(nèi)存圖形繪制和移動的實現(xiàn)使得屏幕畫圖顯得很平滑,這點特別在顯示動畫、多邊形繪制、任意區(qū)域填充、剪切時有用。Microwindows 支持新的Linux內(nèi)核幀緩存(FrameBuffer)結(jié)構(gòu),目前提供每像素1、2、4、8、16、24 和32 位的支持,另外還支持彩色顯示和灰度顯示,其中彩色顯示包括真彩色(每像素15、16 和32 位)和調(diào)色板(每像素1, 2, 4 和 8 位)兩種模式。在彩色顯示模式下,所有的顏色用RGB 格式給出,系統(tǒng)再將它轉(zhuǎn)換成與之最相似的可顯示顏色,而在單色模式下中則是轉(zhuǎn)換成不同的灰度級。Microwindows支持窗口覆蓋和子窗口概念、完全的窗口和客戶區(qū)剪切、比例和固定字體,還提供了字體和位圖文件處理工具。Microwindows支持的中文字符集是GB2312,并不支持Unicode。?
Microwindows 采用分層設(shè)計方法。在最底層,屏幕,鼠標/觸摸屏以及鍵盤驅(qū)動程序提供了對物理設(shè)備訪問的能力。在中間層,實現(xiàn)了一個可移植的圖形引擎,支持行繪制,區(qū)域填充,剪切以及顏色模型等。在上層,實現(xiàn)多種API 以適應(yīng)不同的應(yīng)用環(huán)境。?
兩種API:Win32和Nano-X?
Microwindows中使用兩種流行的圖形編程接口:Microsoft Windows Win32/WinCE圖形顯示接口(GDI)和Xlib-like接口。前者應(yīng)用于所有的Windows CE和Win32應(yīng)用程序,后者就象Nano-X,應(yīng)用于所有Linux X插件集的最底層。這樣做可以讓大量的Windows程序員開發(fā)圖形應(yīng)用程序,類似地也可以讓Linux圖形程序員用X接口開發(fā)圖形應(yīng)用程序。?
Nano-X服務(wù)器占用的資源大約在100K到150K。原始Nano-X應(yīng)用程序的平均大小在30K到60K。由于Nano-X是為有內(nèi)存限制的低端設(shè)備設(shè)計的,所以它不象X那樣支持很多函數(shù),因此它實際上不能作為微型X(Xfree86)的替代品。?
Microwindows系統(tǒng)以圖形方式支持目標平臺的主機平臺仿真。也就是說,用于Linux的Microwindows應(yīng)用程序可以在桌面上進行開發(fā)和原型設(shè)計,運行和測試,而無需在目標平臺上進行交叉編譯和運行。這是使用Microwindows’ X screen驅(qū)動程序完成的,而不是framebuffer驅(qū)動程序,其中目標應(yīng)用程序在桌面主機上運行并顯示在X窗口中。可以告訴驅(qū)動程序以每像素位數(shù)和顏色深度精確地模擬目標平臺的顯示。因此,即使桌面系統(tǒng)是24位顏色,它可以顯示一個2bpp灰度級來預(yù)覽目標應(yīng)用程序。由于主機和目標機都運行Linux,因此大多數(shù)所有操作系統(tǒng)服務(wù)都可在桌面主機上使用。
2 MiniGui
MiniGui官網(wǎng),更多效果圖參見我前面寫的文章《MiniGui Samples運行效果》?
?
MiniGUI 是針對嵌入式系統(tǒng)設(shè)計和優(yōu)化的完整圖形支持系統(tǒng),遵循GPL協(xié)議。作為操作系統(tǒng)和應(yīng)用程序之間的一個中間件,MiniGUI 將底層操作系統(tǒng)和硬件平臺的細節(jié)隱藏起來,并為上層的應(yīng)用程序提供了一致接口。MiniGUI 的主要技術(shù)特性描述如下:?
跨操作系統(tǒng)支持,具體包括普通嵌入式 Linux/uClinux、VxWorks、eCos、uC/OS-II、pSOS、ThreadX、Nucleus、OSE 等,同時還提供 Win32 平臺上的 SDK 開發(fā)包,方便嵌入式應(yīng)用程序的開發(fā)和調(diào)試。?
多運行模式支持,為了適應(yīng)不同的操作系統(tǒng)運行環(huán)境,MiniGUI可配置成三種運行模式:MiniGUI-Threads、MiniGUI-Processes及?MiniGUI-Standalone。?
內(nèi)建資源支持。我們可以將 MiniGUI 所使用的資源,諸如位圖、圖標和字體等編譯到函數(shù)庫中,該特性可提高 MiniGUI 的初始化速度,并且非常適合 eCos/uCOS-II/ThreadX 等無文件系統(tǒng)支持的實時嵌入式操作系統(tǒng)。?
完備的多窗口機制和消息傳遞機制。?
提供常用的控件類,包括靜態(tài)文本框、按鈕、單行和多行編輯框、列表框、組合框、菜單按鈕、進度條、滑塊、屬性頁、工具欄、樹型控件、月歷控件、旋鈕控件、酷工具欄、網(wǎng)格控件、動畫控件等。?
對話框和消息框支持。?
其它 GUI 元素,包括菜單、加速鍵、插入符、定時器等。?
界面皮膚支持,用戶可通過皮膚支持獲得華麗的圖形界面。?
支持低端顯示設(shè)備(比如單色 LCD)和高端顯示設(shè)備(8 位色及以上顯示設(shè)備)。通過 MiniGUI 的圖形抽象層及圖形引擎技術(shù),還可以支持特殊的顯示設(shè)備,比如 YUV 顯示設(shè)備。?
提供有增強 GDI 函數(shù),包括光柵操作、復(fù)雜區(qū)域處理、橢圓、圓弧、多邊形以及區(qū)域填充等函數(shù)。在提供有兼容于 C99 規(guī)范的數(shù)學(xué)庫平臺上,還提供有高級二維繪圖函數(shù),可設(shè)置線寬、線型以及填充模式等。通過 MiniGUI 的圖形抽象層及圖形引擎技術(shù),我們也可以讓上述高級 GDI 接口在低端顯示屏上實現(xiàn)。?
Windows 的資源文件支持,如位圖、圖標、光標等。?
各種流行圖像文件的支持,包括 Windows BMP、GIF、JPEG、PNG等(JPEG 及 PNG的支持通過 libjpeg 及 libpng 函數(shù)庫提供)。?
多字符集和多字體支持,目前支持 ISO8859-1~ISO8859-15、GB2312、GBK、GB18030、BIG5、EUC-JP、Shift-JIS、EUC-KR、UNICODE(UTF-8、UTF-16 編碼)等字符集,支持等寬點陣字體、變寬點陣字體、Qt/Embedded 使用的嵌入式字體 QPF、TrueType 以及 Adobe Type1 等矢量字體(TrueType 及 Type1 的支持分別通過 freetype 1.3 及 libt1 函數(shù)庫提供)。同時,對于點陣字體 MiniGUI 也可以進行自動放大處理,并可針對電視等特殊顯示設(shè)備實現(xiàn)防鋸齒功能。?
多種鍵盤布局的支持。MiniGUI 除支持常見的美式 PC 鍵盤布局之外,還支持法語、德語等西歐語種的鍵盤布局。?
輸入法支持,用于提供各種可能的輸入形式;內(nèi)建有適合 PC 平臺的漢字(GB2312)輸入法支持,包括內(nèi)碼、全拼、智能拼音、五筆及自然碼等。?
針對嵌入式系統(tǒng)的特殊支持,包括一般性的 I/O 流操作,字節(jié)序相關(guān)函數(shù)等。?
副屏支持,當系統(tǒng)中有多個視頻設(shè)備時,可將一個作為MiniGUI的主屏,實現(xiàn)完整的多窗口系統(tǒng);而其它設(shè)備作為副屏,在其上通過MiniGUI 的圖形接口來實現(xiàn)文字渲染、圖形顯示等功能。?
和其它針對嵌入式產(chǎn)品的圖形系統(tǒng)相比,MiniGUI 在對系統(tǒng)的需求上具有如下幾大優(yōu)勢:?
可伸縮性強?
MiniGUI 豐富的功能和可配置特性,使得它既可運行于 CPU 主頻只有 60MHz 的低端產(chǎn)品中,亦可運行于高端嵌入式設(shè)備中,并使用 MiniGUI 的高級控件風(fēng)格及皮膚界面等技術(shù),創(chuàng)建華麗的用戶界面。?
MiniGUI 的跨操作系統(tǒng)特性,使得 MiniGUI 可運行在最簡單的嵌入式操作系統(tǒng)之上,如 uC/OS-II,也可以運行在具有現(xiàn)代操作系統(tǒng)特性的嵌入式操作系統(tǒng)之上,如 Linux,而且 MiniGUI 為嵌入式 Linux 系統(tǒng)提供了完整的多窗口圖形環(huán)境。這些特性,使得MiniGUI 具有非常強的可伸縮性。可伸縮性是 MiniGUI 從設(shè)計之初就考慮且不斷完善而來的。這個特性使得 MiniGUI 可應(yīng)用于簡單的行業(yè)終端,也可應(yīng)用于復(fù)雜的消費類電子產(chǎn)品。?
輕型、占用資源少?
MiniGUI 是一個定位于輕量級的嵌入式圖形庫,對系統(tǒng)資源的需求完全考慮到了嵌入式設(shè)備的硬件情況,如 MiniGUI 庫所占的空間最小可以裁剪到500K?左右,對目前的嵌入式設(shè)備來說,滿足這一條件是綽綽有余的。此外,測試結(jié)果表明,MiniGUI 能夠在 CPU 主頻為30 MHz,僅有4M RAM的系統(tǒng)上正常運行(使用 uClinux 操作系統(tǒng)),這是其它針對嵌入式產(chǎn)品的圖形系統(tǒng)所無法達到的。?
高性能、高可靠性?
MiniGUI 良好的體系結(jié)構(gòu)及優(yōu)化的圖形接口,可確保最快的圖形繪制速度。在設(shè)計之初,我們就充分考慮到了實時嵌入式系統(tǒng)的特點,針對多窗口環(huán)境下的圖形繪制開展了大量的研究及開發(fā),優(yōu)化了 MiniGUI 的圖形繪制性能及資源占用。MiniGUI 在大量實際系統(tǒng)中的應(yīng)用,尤其在工業(yè)控制系統(tǒng)的應(yīng)用,證明 MiniGUI 具有非常好的性能。?
從 1999 年 MiniGUI 的第一個版本發(fā)布以來,就有許多產(chǎn)品和項目使用 MiniGUI,MiniGUI 也不斷從這些產(chǎn)品或者項目當中獲得發(fā)展動力和新的技術(shù)需求,逐漸提高了自身的可靠性和健壯性。有關(guān) MiniGUI 的最新成功案例,您可以訪問飛漫公司網(wǎng)站的典型案例部分:?http://www.minigui.org/?
可配置性?
為滿足嵌入式系統(tǒng)各種各樣的需求,必須要求 GUI 系統(tǒng)是可配置的。和 Linux 內(nèi)核類似,MiniGUI 也實現(xiàn)了大量的編譯配置選項,通過這些選項可定 MiniGUI 庫中包括哪些功能而同時不包括哪些功能。大體說來,我們可以在如下幾個方面對 MiniGUI 進行定制配置:?
指定 MiniGUI 要運行的硬件平臺。 指定 MiniGUI 要運行的操作系統(tǒng)。 指定生成基于線程的 MiniGUI-Threads 運行模式還是基于進程的 MiniGUI-Processes 運行模式,或者只是最簡單的 MiniGUI-Standalone 運行模式。 指定需要支持的 GAL 引擎和 IAL 引擎,以及引擎相關(guān)選項。 指定需要支持的字體類型。 指定需要支持的字符集。 指定需要支持的圖像文件格式。 指定需要支持的控件類。 指定控件和窗口的整體風(fēng)格,可以通過指定不同的渲染器完成。 這些配置選項大大增強了 MiniGUI 的靈活性,對用戶來講,可針對具體的應(yīng)用需求量體裁衣,開發(fā)最適合產(chǎn)品需求的應(yīng)用軟件。
3 QT
QT?官網(wǎng),效果圖如下?
Qt 是一個跨平臺的C++應(yīng)用程序框架,支持Windows、Linux、Mac OS X、Android、iOS、Windows Phone、嵌入式系統(tǒng)等。也就是說,Qt 可以同時支持桌面應(yīng)用程序開發(fā)、嵌入式開發(fā)和移動開發(fā),覆蓋了現(xiàn)有的所有主流平臺。你只需要編寫一次代碼,發(fā)布到不同平臺前重新編譯即可。?
Qt 不僅僅是一個GUI庫,它除了可以創(chuàng)建漂亮的界面,還有很多其他組件,例如,你不再需要研究STL,不再需要C++的頭文件,不再需要去找解析XML、連接數(shù)據(jù)庫、Socket 的各種第三方庫,這些 Qt 都已經(jīng)內(nèi)置了。Qt 是應(yīng)用程序開發(fā)的一站式解決方案!Qt 雖然龐大,封裝較深,但它的速度并不慢,雖不及MFC,但比Java、C#要快。Qt 程序最終會編譯成本地代碼,而不是依托虛擬機。?
使用Qt開發(fā)的軟件,相同的代碼可以在任何支持的平臺上編譯與運行,而不需要修改源代碼。會自動依平臺的不同,表現(xiàn)平臺特有的圖形界面風(fēng)格。?
Linux/X11:用于X Window System(如Solaris、AIX、HP-UX、Linux、BSD)。支持KDevelop和Eclipse IDE集成?
Mac:用于Apple Mac OS X。基于Cocoa框架。支持Universal Binary。支持以Xcode編輯、編譯和測試。?
Windows:用于Microsoft Windows。支持Visual Studio集成,也可以使用MinGW編譯?
Embedded Linux:用于嵌入式Linux。可以通過編譯移除不常使用的組件與功能。通過自己的視窗系統(tǒng)QWS,不需依賴X Window System,直接寫入Linux幀緩沖。可以減少內(nèi)存消耗。并提供虛擬幀緩沖QVFb,方便在桌面系統(tǒng)上進行嵌入式測試。?
Windows CE / Mobile:用于Windows CE?
Symbian:用于Symbian platform?
Maemo/MeeGo:用于Maemo?
Wayland:用于Wayland顯示服務(wù)器,Qt應(yīng)用程序可以在運行時切換圖形后端,如X與Wayland。
4 Gtk+
Gtk+?官網(wǎng),效果圖如下?
?
Gtk+(GIMP Tool Kit,GIMP工具包)是一個用于創(chuàng)造圖形用戶接口的圖形庫。Gtk+是基于LGPL授權(quán)的,因此可以用Gtk+開發(fā)開放源碼軟件、自由軟件,甚至商業(yè)的、非自由的軟件,并且不需要為授權(quán)費或版權(quán)費花費一分錢。Gtk已在大量軟件項目,包括Gnome中得到了廣泛應(yīng)用。?
Gtk+圖形庫使用一系列稱為“構(gòu)件”的對象來創(chuàng)建應(yīng)用程序的圖形用戶接口。它提供了窗口、標簽、命令按鈕、開關(guān)按鈕、檢查按鈕、無線按鈕、框架、列表框、組合框、樹、列表視圖、筆記本、狀態(tài)條等構(gòu)件。可以用它們來構(gòu)造非常豐富的用戶界面。?
GTK本質(zhì)上是面向?qū)ο蟮膽?yīng)用程序編程接口(API)。GObject 也就是這種面向?qū)ο蟮臋C制可以為 GTK+綁定很多種開發(fā)語言。雖然完全是用C寫成的,但它仍然是用類和回調(diào)函數(shù)(指向函數(shù)的指針)的方法實現(xiàn)的。因為Gtk+是用C語言編寫的,所以在開發(fā)Linux下的GUI程序時使用C語言是非常方便的。 在GTK下還可以使用圖形化編程工具Glade,一種GUI生成器,可以快速生成創(chuàng)建界面的C源程序。?
自從Qt推出了嵌入式版本之后,雖然GTK+并非商業(yè)公司所發(fā)展,但也加緊腳步推出了GtkFB方案,其宗旨就是要為嵌入式系統(tǒng)推出一套基于GTK+的GUI解決方案。與Qt/Embedded類似,GtkFB也跳過X層直接與FrameBuffer溝通,因此也具有Qt/Embedded的幾項優(yōu)點,不過由于不是商業(yè)軟件,在發(fā)展的速度上較為緩慢。
5 OpenGUI
OpenGUI官網(wǎng),效果圖如下?
OpenGUI在Linux系統(tǒng)上存在已經(jīng)很長時間了。這個庫是用C++編寫的,只提供C++接口。OpenGUI基于一個用匯編實現(xiàn)的x86圖形內(nèi)核,提供了一個高層的C/C++圖形/窗口接口。OpenGUI提供了二維繪圖原語、消息驅(qū)動的API及BMP文件格式支持。OpenGUI功能強大,使用方便。OpenGUI 支持鼠標和鍵盤的事件,在Linux上基于FrameBuffer或者SVGALib實現(xiàn)繪圖。由于其基于匯編實現(xiàn)的內(nèi)核并利用MMX指令進行了優(yōu)化,OpenGUI運行速度非常快。正由于其內(nèi)核用匯編實現(xiàn),可移植性受到了影響。通常在驅(qū)動程序一級,性能和可移植性是矛盾的,必須找到一個折衷。OpenGUI采用LGPL條款發(fā)布。OpenGUI比較適合于基于x86平臺的實時系統(tǒng),跨平臺的可移植性較差,目前發(fā)展較慢。
6 FLTK
FLTK官網(wǎng),效果圖如下?
?
?
FLTK,如同其名字所表達的:The Fast Light Toolkit,一個輕量級的GUI開發(fā)庫。但這輕量級并不代表功能的羸弱,相反,FLTK在具有基本的GUI功能之外,還擁有一些特殊的功能,比如跨平臺、內(nèi)置 OpenGL功能、速度更快、尺寸更小、協(xié)議(LGPL)寬松等。當然,缺點也是有的,比如對于復(fù)雜的界面構(gòu)件支持不夠,資源支持的不足等。?
FLTK的底層只提供一套完整的畫點、畫線功能,另外附帶了字體的顯示功能,但FLTK對字體的支持還很粗糙。?
最大的缺點是:就是對非英文字體特別是中文的支持比較差,甚至是非常差,它不支持unicode編碼。需要到2.0版本才可能支持,還在開發(fā)當中。
7 比較
7.1 MiniGUI和MicroWindows
MiniGUI和MicroWindows均為自由軟件,但這兩個系統(tǒng)的技術(shù)路線卻有所不同。MiniGUI的策略是建立在比較成熟的圖形引擎之上,比如Svgalib和LibGGI,開發(fā)的重點在于窗口系統(tǒng)、圖形接口之上。而MicroWindows的開發(fā)重點則在底層的圖形引擎之上,所以可以對裸顯示器直接操作,而窗口系統(tǒng)和圖形接口方面的功能還稍有欠缺。比如說,MiniGUI有一套用來支持多字符集和多編碼的函數(shù)接口,可以支持各種的字符集,包括GB、BIG5、UNI-CODE等。
Nano-X 的優(yōu)點?
與Xlib實現(xiàn)不同,Nano-X仍在每個客戶機上同步運行,這意味著一旦發(fā)送了客戶機請求包,服務(wù)器在為另一個客戶機提供服務(wù)之前一直等待,直到整個包都到達為止。這使服務(wù)器代碼非常簡單,而運行的速度仍非常快;占用很小的資源。
Nano-X 的缺點?
1、聯(lián)網(wǎng)功能部件至今沒有經(jīng)過適當?shù)卣{(diào)整(特別是網(wǎng)絡(luò)透明性);?
2、還沒有太多現(xiàn)成的應(yīng)用程序可用;?
3、沒有很多文檔說明而且沒有很好的支持?
4、圖形引擎中存在許多低效算法,值得一提的是,該項目的許多控件是從 MiniGUI 中移植過去的,掃雷游戲也是從 MiniGUI 中移植過去的。由于該項目缺乏一個強有力的核心代碼維護人員,2010年Microwindows推出版本0.92后,該項目的發(fā)展開始陷于停滯狀態(tài)。
MiniGui優(yōu)點?
將現(xiàn)代窗口和圖形技術(shù)帶入到嵌入式設(shè)備的MiniGUI,是一個非常適合于實時嵌入式設(shè)備的高效、可靠、可定制、小巧靈活的圖形用戶界面支持系統(tǒng),而且還有miniStudio集成開發(fā)環(huán)境?
1、支持多種嵌入式操作系統(tǒng),具備優(yōu)秀的可移植性;?
2、可伸縮的系統(tǒng)架構(gòu),易于擴展;?
3、功能豐富,可靈活剪裁;?
4、小體積高性能間的最佳平衡;?
5、廣泛的應(yīng)用領(lǐng)域。
MiniGui缺點?
1、對圖形設(shè)備的抽象層次太高。
| 廠商 | 飛漫(中國) | 世紀軟件(美國) | ? |
| 開發(fā)語言 | C | C | ? |
| 開源協(xié)議 | GPL | MPL | ? |
| 體系結(jié)構(gòu) | 類WIN32 | WIN32/Nano-X | ? |
| 最新版本 | 3.0.12(2012.01) | 0.92(2010.12) | 都很久沒有更新 |
| 資源占用 | 最小500K | 100K~600K | ? |
| 網(wǎng)上資源 | 一般 | 少 | ? |
| 技術(shù)資料 | 一般 | 較少,官網(wǎng)有 | ? |
| 開發(fā)環(huán)境 | vim、eclipse | vim、eclipse | ? |
| 移植難度 | 相同 | 相同 | 移植難度都不太大 |
| 復(fù)雜度 | 中 | 中 | ? |
| 學(xué)習(xí)難度 | 中 | 中 | 應(yīng)用程序?qū)崿F(xiàn)類似 |
| 應(yīng)用范圍 | 中 | 中 | 根據(jù)網(wǎng)上資料 |
MiniGui支持系統(tǒng):Linux/uClinux、VxWorks、eCos、uC/OS-II、pSOS、ThreadX、Nucleus、OSE 等,同時還提供 Win32 平臺上的 SDK 開發(fā)包?
MicroWindows支持系統(tǒng):Linux、RTOS、裸機、X Window、MSDOS、能夠在支持readpixel,writepixel,drawhorzline和drawvertline和setpalette的任何系統(tǒng)上運行
7.2 QT和GTK+
QT優(yōu)點?
相對來說易學(xué):Qt封裝的很好,幾行代碼就可以開發(fā)出一個簡單的客戶端,Qt是面向?qū)ο蟮?#xff0c;Qt對于用戶開發(fā)而言是十分方便的,因為Qt良好的封裝機制令Qt的模塊化程度非常高并且可重用性好。?
資料豐富:資料豐富能夠成倍降低學(xué)習(xí)成本,否則只能去看源碼,?
漂亮的界面:Qt很容易做出漂亮的界面和炫酷的動畫?
獨立安裝:Qt程序最終會編譯為本地代碼,不需要其他庫的支撐,?
跨平臺:如果程序需要運行在多個平臺下,同時又希望降低開發(fā)成本,Qt幾乎是必備的。?
集成環(huán)境:Qt Creator為廣大開發(fā)者提供了免費而又友好的集成開發(fā)環(huán)境。
QT缺點?
庫很大,Qt庫如果不進行裁剪的話,實在是太大了,Qt5中的icudt52.dll就有20多M?
qt Embedded memeory requirememnts:
| 最小 | 正常 | 最小 | 正常 | 最小 | 正常 | 最小 | 正常 | ||
| linux x86 g++ | GCC 4.2.4 | 1.7M | 2.7M | 3.3M | 9.9M | 653K | 1.1M | N/A | 17M |
| linux arm g++ | GCC 4.1.1 | 1.9M | 3.2M | 4.1M | 11M | 507K | 1.0M | N/A | 17M |
| linux mips g++ (MIPS32) | GCC 4.2.4 | 2.0M | 3.2M | 4.5M | 12M | 505K | 1003K | N/A | ? |
GTK+優(yōu)點?
完全Cairo繪制:Cairo是什么?它是一個矢量的繪圖庫,GTK+2.8,Cairo才開始作為GTK的重要繪圖引擎,從來帶來矢量、抗鋸齒等特性?
支持CSS的主題API,還支持簡單的動畫屬性?
多點設(shè)備的支持,設(shè)計靈活、可擴展?
GObject Introspection:它讓GTK+的語言擴展能力盡乎無限。以前,除了GTK+、GTKMM(C++)以外,還有一些動態(tài)語言的綁定,如Pygtk、perl-gtk。但這些實現(xiàn)是各種獨立的,維護成本非常高。但是GObject Introspection實現(xiàn)了GObject對象的統(tǒng)一調(diào)用,這意味著各種語言只要實現(xiàn)一個GObject Introspection的包裝,什么GTK+的API,都可以通過它來調(diào)用了。就像在Python里用ctype一樣,但是通過GI技術(shù),能像使用原生API一樣來使用這些C庫。目前為止,對GI支持比較好的已經(jīng)有Python、JavaScript了。GNOME 3.0的重要組件——GNOME Shell即是使用了JavaScript來實現(xiàn)其UI邏輯部分。
| 廠商 | Digia(芬蘭) | GTK+ Team | ? |
| 開發(fā)語言 | C++、QML | C、綁定其他語言 | ? |
| 開源協(xié)議 | GPL、LGPL | LGPL | ? |
| 體系結(jié)構(gòu) | X Window、Framebuffer | X Window、Framebuffer | ? |
| 最新版本 | 5.9.1(2017.6.30) | 3.22.20(2017.9.4) | 都一直在更新 |
| 資源占用 | qt4.8資源占用見上表 | 未知 | ? |
| 網(wǎng)上資源 | 很多,視頻教程也有 | 中 | ? |
| 技術(shù)資料 | 很多 | 中 | ? |
| 開發(fā)環(huán)境 | Fake Vim、Qt Creator、Visual Studio | vim、eclipse | ? |
| 移植難度 | 比MicroWindows大 | 中 | ? |
| 復(fù)雜度 | 復(fù)雜 | 中 | ? |
| 學(xué)習(xí)難度 | 中 | 中 | ? |
| 應(yīng)用范圍 | 廣 | 中 | ? |
QT支持系統(tǒng):Linux/X11、Mac、Windows、Android、IOS、Embedded Linux、Windows CE/Mobile、Maemo/MeeGo、Wayland,Qt 可以同時支持桌面應(yīng)用程序開發(fā)、嵌入式開發(fā)和移動開發(fā),覆蓋了現(xiàn)有的所有主流平臺?
GTK+支持系統(tǒng):GNU/Linux and Unix、Windows、Mac OS X、X11、Win32、HTML 5、Wayland
?
總結(jié)
以上是生活随笔為你收集整理的嵌入式Linux常用GUI系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux翻墙教程,mysql数据库引擎
- 下一篇: 红旗linux集采,计算机操作系统教程(