fltk

fltk

FLTK (Fast Light Tool Kit 發音為fulltick) 是一種使用C++開發的GUI工具包,它可以套用於Unix,Linux,MS-Windows95/98/NT/2000和MacOS作業系統平台,相 對於其它的許多圖形接口開發工具包(如MFC、GTK、QT等),它具有體積很小、速度比較快,且有著更好的移植性。

基本介紹

  • 外文名:The Fast Light Toolkit
  • 簡寫:fltk
  • 屬於:一個輕量級的GUI開發庫
  • 發音:fulltick
簡介,功能,OPENGL集成,搭建FLTK平台,GUI構件,事件模型,著作權,

簡介

FLTK,如同其名字所表達的:The Fast Light Toolkit,一個輕量級的GUI開發庫。但這輕量級並不代表功能的羸弱,相反,FLTK在具有基本的GUI功能之外,還擁有一些特殊的功能,比如跨平台、內置 OpenGL功能、速度更快、尺寸更小、協定寬鬆等。當然,缺點也是有的,比如對於複雜的界面構件支持不夠,資源支持的不足等。
FLTK 發音為 "fulltick"。
FLTK ,可以在UNIX/Linux (X11),Microsoft Windows和 MacOS X平台運行。

功能

1. 提供豐富的跨平台的GUI構件(Widget)。有按鈕,選單,視窗等,近六十個。
2. 支持OpenGL,提供Fl_GL_Window,支持OpenGL相關的操作。
3. 提供界面設計工具FLUID,非常方便進行界面的設計。
4. 良好的跨平台移植性。
5. 支持多種C++編譯器,Gcc,BC,VC等等。
6. 靈活性。FLTK本身可以定製,以滿足不同的需要。這使得FLTK在嵌入式開發上有著極大的競爭力,這正是我要推薦使用FLTK的原因。

OPENGL集成

FLTK產生於NeXT環境,發展於X-window環境,所以對圖形加速的支持必然是選擇OpenGL。FLTK 使用GlWindow這個類將OpenGL的基本功能囊括其中,只要在GlWindow的draw()里glbegin/glend即可。

搭建FLTK平台

首先在FLTK官網下載你想要的版本之源碼,通常為源碼包名稱fltk-1.3.0-source.tar.gz。
在window中搭建
在window平台搭建fltk開發環境的辦法之一就是使用MinGW+filk+Code::Blocks
因為我們使用MinGW來編譯和安裝fltk,使用Code::Blocks(看起來是一款不錯的C/C++ IDE)來使用fltk。
在安裝MinGW的時候需注意要勾選C++編譯器,因為filk是用C++編寫的。
在安裝完畢MinGW後,啟動它(開始>>所有程式>>MinGW>>MinGW shell)
現在下載fltk,並解壓,放在合適的地方,比如 d:\fltk\
在MinGW中鍵入一下命令 (相信用過linux的朋友不會陌生)
cd /d/fltk
./configure --prefix=d:/Program Files/fltk #這裡是你希望安裝fltk的地方
make #編譯
make install #安裝

GUI構件

FLTK的底層只提供一套完整的畫點、畫線功能,另外附帶了字型的顯示功能,但FLTK對字型的支持還很粗糙,尤其對於非英文字元集而言。在基本的點、線功能基礎上,FLTK完全自己實現了一套界面,比如Button、Label、Edit、Tab等,全部都是由基本的點線畫出。底層之上是一套以Fl_開頭的類,代表了各種GUI構件,比如Window、Button、 Input等,使用起來很是容易。所有的界面構件都是畫出來的,這些界面類的共同特點是輕量型、都擁有一個draw(),只要在draw()里 實現自己的繪畫動作即可。

事件模型

對於FLTK而言,使用的是最直接的方法:while(1){}。每個界面類都有一個handle(int event),只要繼承這個成員函式,就可以在其中處理自己的事務,由於這樣的事件方式,造成FLTK的刷新速度很快,事件反應迅速。FLTK的事件採用了最原始的函式指針方式。
在其他平台搭建
通常使用CMake工具生成。將源碼包解壓至一資料夾,如D:\FLTK(此資料夾必須包含CMakeLists.txt檔案)。再建立一新資料夾如D:\FLTK-bin。使用CMake將"where is the source code "設定為D:\FLTK,將"where to bulid the binaries"設定為D:\FLTK-bin。點擊左下角"configure",成功後點"generate"即生成成功。

著作權

FLTK基於LGPL,對使用者的要求非常寬鬆: Contrary to popular belief, it can be used in commercial software - even Bill Gates could use it! 所以開發者不需要擔心其項目的隱形問題。

相關詞條

熱門詞條

聯絡我們