2017-1-7 藍藍設計的小編
Fltk是一個輕量級的界面庫,但網上相關內容較少,多已過時。學習這個的很多都是嵌入式開發者,但是現在Qt等發展得很好,估計用Fltk的更少了吧。不過有一些單位,比如:列車顯示屏上,就在用fltk開發,藍藍設計就在和中車下屬的某研究所做相關的開發項目。也同時在做codesys界面設計和開發,這是新一代顯示器上用的。fltk上要設計美觀的和創新的界面,在實現上的確有點困維, 這個軟件不太支持透明,圖標的實現效果需要一個像素一個像素的繪試。在圖片的使用上,老的顯示屏上的cpu內存有限,貼圖好看但太占內存,如果在fltk中重畫,會花很多時間。
fltk是一個在界面設計方面有局限性實現效果的軟件,相對來講codesys這個平臺就方便多了。
老外的研究人員對計算機都比較熟悉(國內的就差遠了,尤其是地質方面的),他們有了新理論,就寫一些專業軟件,用來解決某一方面的特殊問題,例如時間序列里的頻譜分析、變質巖里PTXM分析、分子模擬軟件等,這些軟件都是某一理論的創始人直接寫的,一般人寫不出來。很多程序使用Motif界面,只運行在類Unix系統下(國外學術機構還是類Unix系統比較多),雖然這些界面很古老,我感覺很舒服,軟件功能很強。另外X下的作圖軟件Grace、Xfig、XPaint等,雖然界面古老,用起來別有一番風味,速度超快,很爽的。
我想科學程序對界面要求不高,但完全字符界面不利于軟件的傳播使用。寫界面用本地API太麻煩,要學大量的內容,又不能跨平臺。想想學Win32 API或者Xlib編程,都是不容易的。Xt和Motif的API貌似比Xlib的原始界面還復雜。新的XCB基于GTK/Cairo/Clutter系的API格式,但文檔缺乏,也很低層,尚未普及。Qt、WxWidgets、Gtk等雖然強大,也存在分發困難的問題(體積太大)。所以界面庫的話,不用好看,但要功能實用,最好能跨平臺,有基本的控件集,支持國際化字符、有較強的繪圖功能就行了。Fltk很符合這些要求,它體積很小,適合靜態連接(很多科學小程序是單文件的),跨平臺,1.3開始支持utf-8,所有控件自繪,控件數量也頗多,支持OpenGL。這些都非常適合編寫小巧的單文件圖形程序。Fltk的API簡單易學,比Motif、GTK等內容少得多,而且跨平臺是它的一大優勢。
目前圖形程序向著個性化發展,注重設計個性化的圖形元素、動畫和高級觸控等特性,而偏離了傳統的基于Controls(或Widgets)的界面。Qt Quick和Clutter的出現,就是今后Qt和Gtk+發展的方向。微軟的WPF和Silverlight技術也是這個趨勢的體現。現在的新程序,例如迅雷7、酷我等流行軟件,皮膚都是自繪的,而對界面庫現成控件的功能利用較少。Fltk本身的架構是比較適合這種趨勢的,因為Fltk自己設計新控件和繪圖都十分方便,所以完全可以使用自繪設計出非常漂亮的界面。
但Fltk的學習仍然麻煩,因為文檔太少。官方的1.3文檔比價全面,但是要沒有什么基礎的人通過看文檔和源代碼學習還是很難的。我最近為了搞定Fltk用中文字體顯示中文,花了不少功夫。網上的資源很有限,很多論壇的提問也沒什么好答案。Fltk本來也有不少問題,有待改進。因此我想有時間可以寫一個Tutorial,從中文用戶的需求出發,教Fltk的使用。
本來對于對于跨平臺的程序,Qt和QtQuick非常完美,但是其較大的運行時使之不適合寫小程序。如果要寫的系統規模較大,Qt自身的運行時則可忽略不計,那么Qt就是最佳的選擇了。
藍藍設計也用qt給中車做過兩套界面設計和開發,效果是非常佳的。
藍藍設計( paul-jarrel.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務