FLTK

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++での利用が最適です。しかし、他のプログラミング言語向けのバインディングも存在し、例えば、PythonRubyLuaなどでも利用できます。

以下は、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

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。