Fast Light Toolkit(FLTK)是一个跨平台的控件库,用于开发图形用户界面(GUI)
Fast Light Toolkit(FLTK)是一个跨平台的控件库,用于开发图形用户界面(GUI)。它由Bill Spitzak等人开发,不仅支持3D图形编程,并且提供了OpenGL接口,也适用于一般的GUI编程。
FLTK采用自己的控件、绘图和事件系统,这些系统从底层的系统依赖代码中抽象出来,使得编写的程序在所有支持的操作系统上看起来都一样。
FLTK是免费和开源软件,根据GNU较宽松通用公共许可证(LGPL)授权,附加了允许与不兼容许可证的应用程序静态链接的条款。
与GTK、Qt和wxWidgets等用户界面库相比,FLTK采用了更轻量级的设计,仅限于GUI功能。因此,库的体积非常小(FLTK的“Hello World”程序大约为100KiB),通常是静态链接的。它还避免了复杂的宏、单独的代码预处理器,以及使用一些高级C++特性:模板、异常和运行时类型信息(RTTI)或对于FLTK 1.x来说,命名空间。这些特点,加上包的适度大小,使得它对新用户来说相对容易学习。
这些优势也伴随着相应的劣势。FLTK提供的控件比大多数GUI工具包要少,而且由于使用了非本地控件,它在任何平台上都没有本地的外观和感觉。
FLTK最初是为了与Silicon Graphics(SGI)机器上的Forms Library兼容而设计的(这个库的一个衍生版本XForms仍然经常使用)。在该库中,所有函数和结构都以fl_开头。这种命名被扩展到C++库中的所有新方法和控件,并且这个前缀FL被作为库的名称。FL作为开源软件发布后,人们发现在互联网上搜索“FL”是一个问题,因为它也是佛罗里达州的缩写。经过多次辩论和寻找新名称,Bill Spitzak提出了Fast Light Tool Kit(FLTK)。
FLTK是用C++编程语言编写的面向对象的控件工具包。虽然GTK主要是为X Window System优化的,但FLTK在其他平台上也能工作,包括与Windows API接口的Microsoft Windows和与Quartz接口的OS X。Wayland后端已经实现,并将在1.4.0版本中提供。FLTK2已经获得了可选使用cairo图形库的实验性支持。
如果编写了语言绑定,用一种编程语言编写的库可以在另一种语言中使用。FLTK有各种语言的绑定。
FLTK主要是为C++设计和编写的,但也存在其他语言的绑定,例如Lua、Perl、Python、Ruby、Rust和Tcl。
FLTK 1.x的这个示例创建了一个带有确定按钮的窗口:
FLTK包括Fast Light User Interface Designer(FLUID),这是一个图形GUI设计器,可以生成C++源代码和头文件。