ウィジェット・ツールキット
1/14
出典: フリー百科事典『





(







)』
ウィジェット・ツールキット (widget toolkit) あるいは GUIツールキット とは、グラフィカルユーザインタフェース (GUI) を構成する部品の集まりである。通常、ライブラリやアプリケーションフレームワークの形式で実装される。分野によって、ウィジェットはコントロール、コンポーネントとも呼ばれる。デスクトップアプリケーションの作成に用いられる。
個々の部品についてはウィジェット (GUI)を参照されたい。
目次 |
[編集] 概要
高レベルなウィジェット・ツールキットは、GUIの生成と振る舞いを管理するAPIである。
- GUIは、ウィジェットの木構造として生成されることが多く、その一部がユーザーとのやり取りが可能となっていて(ボタン、チェックボックスなど)、他はウィジェットをグループ化するコンテナである(ウィンドウ、パネルなど)。
- ウィジェットの木構造の中身やウィジェットの属性は、実行時に変更可能であるものが多い(例えば、木構造からウィジェットを追加・削除できる)。
- ツールキットはボタンをクリックするなどのユーザーイベントを扱う。イベント検出後のアクションはツールキットが指定するものではなく、アプリケーションが指定する。例えば、ファイルダイアログからユーザーがファイルを選択したら、ファイルダイアログ・ウィジェット自身の反応とそのユーザーイベントの検出はウィジェット・ツールキットが扱うが、ファイルを選択したことに対応する具体的なアクション(そのファイルを読み込むなど)はアプリケーション自身が行う。
ウィジェット・ツールキットは、コンテナの中でのウィジェットの位置決めの手段を必ず持っている。最も簡単な方法は、画面上の絶対座標や上位ウィジェットからの相対座標をピクセル単位で指定する方法だが、ウィジェット同士の相対的な位置関係だけを指定して具体的な座標を指定しない方法もある(レイアウトマネージャ)。
ウィジェットのルック・アンド・フィールはツールキット内でハードコードされる場合もあるが、ウィジェットツールキットによってはユーザーがルック・アンド・フィールを定義できるAPIを提供している。
[編集] 主要なウィジェット・ツールキット
[編集] 低レベルなもの
[編集] オペレーティングシステムに組み込まれているもの
- Mac OS のツールボックス、あるいは従来はROMに組み込まれていた Macintosh の API。Mac OS Xでの改良版はCarbon。
- Microsoft Windows で使われている Windows API。
[編集] オペレーティングシステム上の分離した層として実装されているもの
- X Window System は基本的な構成要素 (Xt) を含んでおり、Motif はそれを使っているが、GTK+ や Qt など大部分のツールキットはこれを使わず、直接 Xlib を使っている。
- AmigaOS の Intuition は、Amiga の ROM に含まれていて、やや高レベルなウィジェットを使い Amiga の GUI である Workbench を呼び出している。Amiga OS 2.0 の Intuition からはディスク上のオブジェクト指向ライブラリとなった。同時に Workbench も Icon もディスクベースとなっている。
[編集] 高レベルなもの
[編集] Macintosh
- Cocoa - Mac OS Xで使用される (Aquaも参照されたい)。
- MacApp Macintosh フレームワーク。
- MacZoop Macintosh C++フレームワーク。
- PowerPlant Macintoshフレームワーク。
[編集] Microsoft Windows
- Microsoft Foundation Class (MFC) は、多くの開発者がWindows上の開発で使用している。このフレームワークはWindows API (Win32 API) のラッパーであり、独立したツールキットではない。
- Windows Template Library (WTL) は、ATLのテンプレートに基づいた拡張であり、MFCを置換するものである。
- Object Windows Library はMFCに相当するボーランドのライブラリ。これもWindows API (Win32 API) のラッパーであり、独立したツールキットではない。
- Visual Component Library (VCL) はボーランドの C++ BuilderとDelphi製品に含まれているツールキット。これもWindows API (Win32 API) のラッパーであり、独立したツールキットではない。
- Windows Forms は、.NET FrameworkのGUI制御用クラス群である。Monoはそのクロスプラットフォームかつオープンソースの実装であり、Windows APIのないプラットフォームでも動くようマネージコードに相当するものを一から実装している[1]。
- Windows Presentation Foundation (WPF) は、.NET Framework 3.0 のグラフィックスサブシステムである。WPFでのユーザインタフェースは、任意のCLR言語(例えば C#)やXMLベースのXAML言語を使って定義できる。WPF でのGUIビルダーとしてMicrosoft Expression Blendがある。
[編集] UNIX と X Window System
- Xawは、Project Athenaで開発されたX Window System用のウィジェットセット。
- Motif は Common Desktop Environmentで使用されている。
- LessTif はMotifのオープンソース版 (LGPL)。
- InterViewsはC++で書かれたツールキット。
[編集] クロスプラットフォーム
- Flashベース
- Adobe Flashを使って多くのWebブラウザと一部の携帯電話で機能するウィジェットを作成できる。
- Adobe Flex はWebブラウザ用の高度なウィジェットを提供する。FlashのウィジェットはFlexで利用可能。
- FlashとFlexのウィジェットは Adobe Integrated Runtime (AIR) を使ってブラウザを用いずに利用可能となる予定である。
- Flashのフリーソフトウェアとしての再実装が GNU Gnashである。開発中であるが、こちらもFlashのウィジェットをブラウザを使わずに利用可能。
- XMLベース
- Ajaxベース
- Javaベース
- Abstract Window Toolkit (AWT) はJavaアプリケーションで使用される。プラットフォーム毎にウィジェットツールキットを切り替えて使用する。
- Swing は サン・マイクロシステムズが AWTを改良・拡張したもの。
- Standard Widget Toolkit (SWT) は Eclipse計画の一環としてIBMによって開発された Java用ウィジェット・ツールキット。動作する環境のウィジェットを使用する。100% Pure Javaではない。
- C言語/C++ベースおよびマルチ言語ベース
- CLX (Component Library for Cross-platform)は、ボーランドのDelphi、C++ Builder、Kylixで使用されている。Qtをベースにしており、同社の VCL ツールキットとよく似たインタフェースとなっている。
- GTK+ は、オープンソース (LGPL)であり、主に X Window System で使われている。他のプラットフォーム上にも移植あるいはエミュレータが存在する。GNOMEおよびXfceデスクトップ環境で使われている。
- Qt は、オープンソース (LGPL)であり、Unix/Linux (X Window System)、Windows、Mac OS X、さらに組み込みシステムで使用可能である。また、商用バージョン(QPL)も存在する。KDEで使われている。
- Tk は、Tcl上あるいは他のスクリプト言語(Pythonなど)で使用するウィジェットセット。
- wxWidgets(以前の名称は wxWindows)は、オープンソース (ゆるいLGPL)であり、C++、Python、Perlから使えるクロスプラットフォームなツールキットである。
- FLTK は、オープンソース (LGPL)であり、小さくて高速なのが特徴。
- FOX toolkit は、オープンソース (LGPL)であり、クロスプラットフォームである。
- Agar
- CEGUI
- GLUI
- Juce
- Ultimate++
- Visual Component Framework (VCF)
- YAAF
- Pascalベース
- Lazarusは Free PascalおよびObject Pascal向けの統合開発環境であり、ウィジェット・ツールキットを含む。
- IP Pascal
- fpGUI
[編集] カテゴリ分けされていないもの
[編集] 脚注
[編集] 外部リンク
- The GUI Toolkit, Framework Page(英語), 最近のGUIツールキットを比較している (geocities上のミラー(英語), 他のミラー(英語)).
- Survey of Widget sets (for the X Window System) (Edward Falk)
- GUI Toolkits for The X Window System (Leslie Polzer、freshmeat.net、2003年7月27日)
[記事全文]






® は 












