ウィジェット・ツールキット (widget toolkit)あるいは GUIツールキット とは、グラフィカルユーザインタフェースを構成する部品の集まりである。通常、ライブラリやアプリケーションフレームワークの形式で実装される。分野によって、ウィジェットはコントロール、コンポーネントとも呼ばれる。デスクトップアプリケーションの作成に用いられる。
概要
高レベルなウィジェット・ツールキットは、GUIの生成と振る舞いを管理するAPIである。
- GUIは、ウィジェットの木構造として生成されることが多く、その一部がユーザーとのやり取りが可能となっていて(ボタン、チェックボックスなど)、他はウィジェットをグループ化するコンテナである(ウィンドウ、パネルなど)。
- ウィジェットの木構造の中身やウィジェットの属性は、実行時に変更可能であるものが多い(例えば、木構造からウィジェットを追加・削除できる)。
- ツールキットはボタンをクリックするなどのユーザーイベントを扱う。イベント検出後のアクションはツールキットが指定するものではなく、アプリケーションが指定する。例えば、ファイルダイアログからユーザーがファイルを選択したら、ファイルダイアログ・ウィジェット自身の反応とそのユーザーイベントの検出はウィジェット・ツールキットが扱うが、ファイルを選択したことに対応する具体的なアクション(そのファイルを読み込むなど)はアプリケーション自身が行う。
ウィジェット・ツールキットは、コンテナの中でのウィジェットの位置決めの手段を必ず持っている。最も簡単な方法は、画面上の絶対座標や上位ウィジェットからの相対座標をピクセル単位で指定する方法だが、ウィジェット同士の相対的な位置関係だけを指定して具体的な座標を指定しない方法もある(レイアウトマネージャ)。
ウィジェットのルック・アンド・フィールはツールキット内でハードコードされる場合もあるが、ウィジェットツールキットによってはユーザーがルック・アンド・フィールを定義できるAPIを提供している。
主要なウィジェット・ツールキット
低レベルなもの
オペレーティングシステム上の分離した層として実装されているもの
- X Window System は基本的な構成要素(Xt)を含んでおり、Motif はそれを使っているが、GTK+ や Qt など大部分のツールキットはこれを使わず、直接 xlib を使っている。
- AmigaOS の Intuition は、Amiga の ROM に含まれていて、やや高レベルなウィジェットを使い Amiga の GUI である Workbench を呼び出している。Amiga OS 2.0 の Intuition からはディスク上のオブジェクト指向ライブラリとなった。同時に Workbench も Icon もディスクベースとなっている。
高レベルなもの
X Window System は UNIX向けに開発されたが、Cygwinなどを使えば他のプラットフォームでも動作する。従って、以下のツールキットも必ずしもUNIX系に限定されない。
カテゴリ分けされていないもの
脚注
- ^ これにより、.NET Framework 2.0 の基本 API を提供するが、そのAPI実装は未だ不完全である。
外部リンク