GUI是在嵌入式設備中是非常重要的一環,GUI的好壞直接影響到了用戶的體驗。因此一個優秀的gui是非常重要的,爲此我前階段對gui稍微做了調研。
目前通用的gui有:
gtk系列:在linux下鼎鼎大名的gnome桌面就是基於gtk庫設計的,當然gnome是gtk+Xwindow的方式,在嵌入式設備中的選擇有gtk+DirectFB。
Qt系列:桌面應用有KDE,關於kde和gnome的恩恩怨怨可以google一下,很有意思,是開源界有名的鬥爭之一。Qt現在被nokia收購了,財大氣粗,最近又有幾個大動作,很有看頭。
Minigui:國人開發的開源軟件,短小精悍,比較適合低端嵌入式產品。但是隻有1.3.3和1.6的開源,高版本的均需要付版權費。用還是蠻好用的,但這種先開源後閉源的做法實在讓人不爽。而且minigui即使低版本也僅僅是支持gpl,不像qt那樣直接支持lgpl,這就意味着如果你真的使用它做開發的話,你的應用程序也需要遵循gpl(也就是需要無償貢獻應用程序的源碼,當然前提是你遵守gpl)。
再系統的說一下我爲什麼覺得qt是王道:
1. qt本身,絢麗的界面,支持多種平臺(包括windows),大量qt軟件可以很方便的移植過來,還有面向對象的結構使整個系統更加穩定;
2. 最重要的一點,傳統上來說在linux開發總是讓非專職linux程序員很痛苦,基本都是用命令行操作,沒有人性化的界面。但是這一點在qt上徹底終結了,nokia做得最大的一件好事就是爲qt在linux上的開發做了一套完整的ide,讓用戶從整個界面的設計,到函數的編寫,程序的debug,函數的查詢,到最後可執行文件的建立可以完全依靠這個集成開發環境,非常非常強大。
可以說有了這個ide(QT Creator),在linux上的開發和windows毫無差別,用戶甚至連makefile都不用寫,太神奇了,而且它支持交叉編譯,你想把從X86架構換成arm架構,只需要在options中將庫文件換成arm的庫文件就可以了,再次贊一個。
內置圖形設計軟件,可以讓你設計界面就像搭積木(甚至比MFC更方便),這點上比着其他的一些開源gui更強,用minigui只能苦苦的一個個控件自己用程序語言搭建。
3. 長遠的看,背會nokia的強力支持,必將使qt得到更加長足的發展,我們現在就能感受 到變化了,從LGPL的開發,到qt Creator的發佈,背會均體現了nokia的野心和對qt的期望。當然對我們開發者來說則看到了更美好的未來,有了nokia這棵大樹,再也不用擔心哪天qt倒了,我們將源源不斷的獲得最新的技術和支持(這也是勝之於minigui的很大一點)。
總結一下:
個人認爲如果開發對界面,效果要求不高的工控設備可以採用minigui,畢竟它更加精簡,對硬件的需求也更小。對於有足夠的硬件支持(arm9以上的處理器,足夠大的內存,64M以上)更加推薦用qt,效果會更加好,而且功能也會更加強大。