FLTK(Fast, Light Toolkit)は、Bill Spitzakらによって1998年に開発された、
クロスプラットフォーム対応のGUI
ライブラリです。その設計思想は、
3次元コンピュータグラフィックスとの親和性を考慮しており、
OpenGLとの連携機能も備えています。しかし、その適用範囲は広く、一般的なGUI
プログラミングにも十分に活用できます。
FLTKは、独自のウィジェット、描画、イベントシステムを採用し、各プラットフォームの差異を吸収しています。これにより、開発者は、どの
オペレーティングシステムでも同じように動作するアプリケーションを作成できます。FLTK2では実験的にcairoもサポートされており、さらなる柔軟性も備えています。
ライセンスは自由ソフトウェアであり、LGPLとの静的リンクを可能にする特別な条項が含まれています。また、FLTKには、GUI設計ツールのFLUID(FLTK User Interface Designer)が付属しており、
C++のソースコードとヘッダファイルを生成できます。
QtやwxWidgetsといった他のGUI
ライブラリと比較すると、FLTKは軽量設計で、機能もGUIに特化しています。このため、
ライブラリサイズが非常に小さく、静的リンクされることが多いのが特徴です。また、複雑なマクロやプリプロセッサは使用されておらず、
C++の最新機能(テンプレート、例外、RTTI、FLTK 1.xでは名前空間)も積極的に使われていないため、習得が容易です。
ただし、軽量であるがゆえに、提供されるウィジェットの種類が他のツールキットに比べて少ない、ネイティブウィジェットでないために、プラットフォーム固有の見た目とは異なるという短所もあります。
名称の由来
FLTKは、元々
シリコングラフィックスのマシン向けのForms Library互換として開発されました。この
ライブラリでは、全ての関数や構造体の名前に「fl_」というプレフィックスが付いていました。FLTKもこの命名規則を継承したことから、「FL」という名称が採用されました。しかし、「FL」という名称は、
インターネット検索で
フロリダ州(略称がFL)と混同されるなど、検索が困難であったため、議論と調査を重ねた結果、「FLTK」という名称が決定し、「Fast Light Tool Kit」の略であると後付けされました。
FLTKは
C++で記述されているため、
C++での利用が最適です。しかし、他の
プログラミング言語向けのバインディングも存在し、例えば、
Python、
Ruby、
Luaなどでも利用できます。
以下は、FLTK 1.xを使って「Okay」ボタンのあるウィンドウを生成する
C++のコード例です。
cpp
include
include
include
int main()
{
Fl_Window
window = new Fl_Window(340,180,"FLTK Test");
Fl_Button button = new Fl_Button(150, 60, 80, 30, "Okay");
window->end();
window->show();
return Fl::run();
}
FLTKを使っているソフトウェア
FLTKは、以下のようなソフトウェアに採用されています。
CinePaint (GTK+からFLTKへ移行中)
flwm (ウィンドウマネージャ)
Nuke (ハイエンドデジタル合成ソフトウェア)
SmallBASIC Windows版
PosteRazor (オープンソースポスター印刷ソフトウェア)
Avimator (Biovision Hierarchyエディタ)
Dillo (ウェブブラウザ)
Gmsh (オープンソース
有限要素法用メッシュ生成)
EDE (Equinox Desktop Environment)
Open Movie Editor
ZynAddSubFX (オープンソースソフトウェアシンセサイザー)
Agenda VR3 (
Linux搭載
携帯情報端末用ソフトウェア)
GNU Octave (MATLAB互換数値解析ソフトウェア)
関連項目
ウィジェットツールキット
Qt
wxWidgets
GTK (ツールキット)
外部リンク
Fast Light Toolkit - Fast Light Toolkit (FLTK) 公式ウェブサイト
初心者用チュートリアル(英語)
Erco's FLTK Cheat Page