FLTK

FLTK
開発元 Bill Spitzak
リポジトリ
  • github.com/fltk/fltk
ウィキデータを編集
対応OS UNIX / Linux / BSD (X11), macOS, Windows
種別 ウィジェット・ツールキット
ライセンス LGPL
公式サイト www.fltk.org
テンプレートを表示

FLTK (Fast, Light Toolkit) は、クロスプラットフォームGUIライブラリであり、Bill Spitzakらが1998年に開発した。3次元コンピュータグラフィックスとの親和性を考慮し、OpenGLとのインタフェースも持っているが、一般的GUIプログラミングにも適している。

独自のウィジェット、描画、イベントシステムを使って、基盤となっている各システム固有のコードを抽象化している(なお、FLTK2では実験的にcairoもサポートしている)。これによって、どのオペレーティングシステムでも同じ見た目のプログラムを書くことができる。

FLTKはフリーソフトウェアであり、LGPLに非互換なライセンスのアプリケーションとの静的リンクを許すという条項を加えたライセンスとなっている。ライブラリだけなくFLUID (FLTK User Interface Designer) というグラフィカルなGUI設計ツールが含まれ、C++のソースファイルとヘッダファイルを生成する。

QtwxWidgetsに比べると、FLTKはより軽量に設計されていて、機能もGUI機能に限定されている。このためライブラリは非常に小さく(FLTKによる "Hello World" プログラムは約100KiB)、静的リンクされることが多い。また、複雑なマクロやプリプロセッサもなく、C++ の最新機能(テンプレート、例外RTTI、FLTK 1.x では名前空間)も使っていない。従って、習熟が比較的容易である。

長所は短所にもなる。FLTKは多くのウィジェット・ツールキットよりも提供するウィジェットの種類が少ない。また、ネイティブでないウィジェットであるため、そのプラットフォームのネイティブなルック・アンド・フィールとは異なる。

名称の由来

FLTKは当初、シリコングラフィックスのマシン向けのForms Library互換となるよう設計された。このライブラリでは、全ての関数や構造体の名前に "fl_" というプレフィックスが付いていた。FLTKでもこの命名規則がそのまま適用され、そこから "FL" という名称とされた。しかし、リリースして見ると "FL" という名称をインターネット上で検索するのが困難だったため(例えばフロリダ州も "FL" と略記される)、盛んに議論と調査を行った上で "FLTK" という名称が選ばれ、後付けで "Fast Light Tool Kit" の略とされた。

プログラミング言語での使用

FLTKはC++で書かれているので、C++での利用に適している。しかし、他のオブジェクト指向プログラミング言語向けのバインディングもあり、例えば、Python向けバインディング[1]Ruby向けバインディング[2]Lua向けバインディング[3]がある。

以下のコード例は、FLTK 1.xを使って "Okay" ボタンのあるウィンドウを生成するものである。

#include <FL/Fl.H>
#include <FL/Fl_Window.H>
#include <FL/Fl_Button.H>

int main(int argc, char *argv[]) {
   Fl_Window* w = new Fl_Window(330, 190);
   new Fl_Button(110, 130, 100, 35, "Okay");
   w->end();
   w->show(argc, argv);
   return Fl::run();
}

FLTKを使っているソフトウェア

注釈

  1. ^ flwm
  2. ^ PosteRazor - Make your own poster!
  3. ^ Open Movie Editor - Free and Open Source Video Editor

脚注

  1. ^ pyFLTK Home Page
  2. ^ Ruby/FLTK Home Page
  3. ^ murgaLua Home Page

関連項目

ポータル FLOSS

外部リンク

  • Fast Light Toolkit - Fast Light Toolkit (FLTK) 公式ウェブサイト
  • 初心者用チュートリアル(英語)
  • Erco's FLTK Cheat Page
低レベル
高レベル
AmigaOS対応
  • BOOPSI(英語版)
  • Magic User Interface(英語版)
  • ReAction GUI(英語版)
  • Zune(英語版)
Mac OS/macOS対応
  • Cocoa (API)
  • MacApp(英語版)
  • MacZoop(英語版)
  • PowerPlant(英語版)
Windows対応
X11下のUnix対応
  • Athena/Xaw(英語版)
  • InterViews(英語版)
  • LessTif
  • Motif
言語別
クロスプラットフォーム
CLI
  • Gtk#
  • Moonlight(英語版)
  • Tao(英語版)
C/C++
  • CEGUI(英語版)
  • Component Library for Cross Platform
  • FLTK
  • FOX toolkit(英語版)
  • OpenGL User Interface Library(英語版)
  • GTK
  • Juce(英語版)
  • Qt
  • Wt(英語版)
  • Tk
  • TnFOX(英語版)
  • Ultimate++(英語版)
  • Visual Component Framework(英語版)
  • wxWidgets
  • YAAF(英語版)
  • XForms
  • XVT(英語版)
Objective-C
Flash
Java
デスクトップ
ウェブ
JavaScript
Common Lisp
Object Pascal
Perl
  • WxPerl(英語版)
  • Perl/Tk
PHP
  • PHP-GTK(英語版)
  • PHP-Qt(英語版)
  • WxPHP(英語版)
Python
Ruby
  • Shoes
  • QtRuby(英語版)
XML
  • Ample SDK(英語版)
  • CougarXML(英語版)
  • GladeXML
  • Lively Kernel(英語版)
  • Pyjamas(英語版)
  • Rialto Toolkit(英語版)
  • XAML
  • XML User Interface(英語版)
  • XUL
  • Wt(英語版)
  • 一覧記事一覧(英語版)
  • カテゴリカテゴリ