[轉] 嵌入式跨平台GUI選擇

出處:http://blog.csdn.net/delores/article/details/5469996

關注嵌入式gui庫很久了,一直想找一個合適的gui庫。Thomas Petazzoni的這篇文章不錯choosing-embedded-graphical-libraries,感謝Thomas Petazzoni。
1. FLTK — Fast Light Toolkit
FLTK (pronounced “fulltick”) is a cross-platform C++ GUI toolkit for UNIX®/Linux® (X11), Microsoft® Windows®, and MacOS® X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL® and its built-in GLUT emulation.
利用FLTK做項目是讀書時的時候了,感覺不錯,唯一遺憾的是不支持QNX系統。另外在非x86架構下移植也不是那麼容易,貌似現在有大牛已經做了ARM下的移植,google裡搜下哈,我暫時用不著不去嘗試了。另外還有個gui設計工具FLUID,有點像VB,Glade或QtCreator。
附:FLTK ARM
cross-compilation-fltk-for-arm
Porting FLTK on a embedded ARM platform
2. MiniGUI
這個甭提了,中國人的驕傲啊,向魏永明大哥致敬!
如果你熟悉MFC,使用minigui絕對順手:) 在一個手持播放器的項目上用過開源的minigui。後來有點時間在QNX 6.41上嘗試了一把移植,說明也是可行的。
3. Photon
QNX專有的東西,談不上跨平台(操作系統平台),但如果你使用QNX系統,快CPU架構是小菜一碟。其編程的難度還過得去,功能也相當強大。在下面的編程對我來說簡直是享受哈哈,至今還在懷念4年前利用Photon開發DCS集成控制器(相當於一個PLC + 一個本地HMI)的那段日誌。
QNX開源了,但Photon庫至今沒開源,持續關注中,期待Photon也早日開源,到時候看是否可以嘗試移植到Linux和wince,估計QNX不樂意我這樣幹,嘿嘿。
3. GTK+
GTK+最初是GIMP的專用開發庫,後來發展為類Unix系統下開發圖形界面的應用程序的主流開發工具之一。做DCS控制器時嘗試過跨平台方案,對GTK+進行過評估,至少QNX下是沒問題的。只是鑑於項目對跨平台的需求不大最終還是選擇QNX自身的Photon。
4. SDL — Simple Directmedia Layer
SDL與其他GUI庫有點不一樣,SDL是一個自由的跨平台的多媒體開發包。適用於遊戲,播放器等。很多開源的播放器都支持這個,自己也模仿著ffmpeg下面的fplayer寫過一個播放器,渲染和聲音使用SDL,還比較好玩。跨平台沒的說,絕對OK。
5. DirectFB
DirectFB是存在於Frame Buffer層之上與高級圖形管理層如GTK+等之下的。它可以以很小的系統資源佔用來提供圖形硬件加速功能,提供類如多路a通道渲染模型等高級圖像操作。它不修改Linux內核,除了標準C庫沒有其他庫的依賴。應用在了基於Linux系統的DTV顯示系統的研發和其他有關Linux顯示界面的項目上。支持市面上絕大多數顯示卡,支持鍵盤、鼠標、遙控器、遊戲手柄、觸摸屏等輸入設備。支持JPEG、PNG、GIF、mpeg1/2、AVI、MOV、Flash、Video4Linux、DirectFB bitmap font和TrueType等音視頻文件和字體。上層API支持DirectFB的有:XDirectFB、DirectFBGL、GTK+、DFBTerm、DFBSee、DFBPoint、MythTV、Qt on DirectFB、SDL。
QT可以直接支持Frame buffer,但也可也支持DirectFB,有機會要在項目中嘗試使用看看,與Frame buffer PK下。
6. wxWidgets
用過emule吧,就是用wxwidget寫的。能與QT進行PK的估計也只有wxwidget了。有相當多的小組件和擴展。曾經一度成為我的跨平台首選,也進行了不少預演(不過只留下一片筆記:wxWidgets在wince上的編譯方法),只可惜一直沒有合適的項目使用它。還是繼續關注吧。
另外無法在QNX下直接運行是個問題,雖然可以運行在xfree上,但總不是那麼回事,在嵌入式平台上再架個xfree效率上不知道咋樣。
7. QT Open source 
感謝Nokia開放了QT源碼,另外也修改了license為LGPL。終於可以坦蕩的使用它了。QT支持的平台也逐漸在擴展,QNX和VxWorks上都有啦,Symbian就不用說了,Nokia肯定更會大力支持的。
在QNX 6.41上進行了嘗試,可以運行,只是鍵盤驅動代碼裡有點問題,對QNX的鍵盤映射錯誤,這不是大問題,可以解決。終於盼來了Linux、wince、qnx下面都可以用的QT啦,不錯不錯。
突然發現自己的QNX情結還真是有點深啊,總是會考慮到qnx上的應用,畢竟QNX伴隨我從讀書到工作好幾年呢。只是現在工作的關係逐漸遠離了QNX,但還是持續關注中。

未經允許不得轉載:GoMCU » [轉] 嵌入式跨平台GUI選擇