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