2003 年 5 月 10 日
FLTK(Fast Light Tool Kit 发音为fulltick) 是一种使用C++开发的GUI工具包,它可以应用于Unix,Linux,MS-Windows95/98/NT/2000和MacOS操作系统平台,相对于其它的许多图形接口开发工具包(如MFC、GTK、QT等),它具有体积很小、速度比较快,且有着更好的移植性。
FLTK(Fast Light Tool Kit 发音为fulltick) 是一种使用C++开发的GUI工具包,它可以应用于Unix,Linux,MS-Windows95/98/NT/2000和MacOS操作系统平台,相对于其它的许多图形接口开发工具包(如MFC、GTK、QT等),它具有体积很小、速度比较快,且有着更好的移植性。本文就FLTK编程的一些基本方法进行介绍。
1. 提供丰富的跨平台的GUI构件(Widget)。有按钮,菜单,窗口等,近六十个。
2. 支持OpenGL,提供Fl_GL_Window,支持OpenGL相关的操作。
3. 提供界面设计工具FLUID,非常方便进行界面的设计。
4. 良好的跨平台移植性。
5. 支持多种C++编译器,Gcc,BC,VC等等。
6. 灵活性。FLTK本身可以定制,以满足不同的需要。这使得FLTK在嵌入式开发上有着极大的竞争力,这正是我要推荐使用FLTK的原因。
本文就FLTK编程的一些基本方法进行介绍。


安装FLTK很简单,我们只需要下载它的源文件,解压缩到目录下,在Linux下我们只需要输入make,编译完成然后make install就头文件安装到/usr/include/FL目录下。库文件就在/usr/lib下,也可以自己编译之后把这些文件复制到这些目录,或者不需要复制,只在编译连接的时候指定路径。
在window下可以使用VC,BC打开相应目录下的工程文件编译即可。


FLTK作为GUI开发包,包含了常用的图形用户接口需要的一些构件,视觉表现非常丰富,如下两图所示:


常用按钮构件
按钮名称
头文件
按钮名称
头文件
Fl_Button
Fl_Button.H
Fl_Check_Button
Fl_Check_Button.H
Fl_Light_Button
Fl_Light_Button.H
Fl_Repeat_Button
Fl_Repeat_Button.H
Fl_Return_Button
Fl_Return_Button.H
Fl_Round_Button
Fl_Round_Button.H
对于具有Fl_Check_Button、Fl_Loght_Button和Fl_Round_Button当状态为off时value() =0 ,On时value()返回1。
处理按钮时间可以使用回调(callback)函数,参见后面的事件处理。
文本处理构件
构件名称
头文件
构件名称
头文件
Fl_Input
Fl_Input.H
Fl_Output
Fl_Output.H
Fl_Multiline_Input
Fl_Multiline_Input.H
Fl_Multiline_output
Fl_Multiline_output.H
设置和取得文本内容使用value();
如:
(new Fl_Input(x,y,width,height,"Label"))->value("Hello World!");
其他构件
参见FLTK.org的 文档说明。
这些构件是使用C++开发的,具有完善的继承关系,下面是构件继承关系图

















