ウィジェット・ツールキット

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

ウィジェット・ツールキット (widget toolkit) あるいは GUIツールキット とは、グラフィカルユーザインタフェース (GUI) を構成する部品の集まりである。通常、ライブラリアプリケーションフレームワークの形式で実装される。分野によって、ウィジェットコントロールコンポーネントとも呼ばれる。デスクトップアプリケーションの作成に用いられる。

個々の部品についてはウィジェット (GUI)を参照されたい。

概要[ソースを編集]

高レベルなウィジェット・ツールキットは、GUIの生成と振る舞いを管理するAPIである。

  • GUIは、ウィジェット木構造として生成されることが多く、その一部がユーザーとのやり取りが可能となっていて(ボタンチェックボックスなど)、他はウィジェットをグループ化するコンテナである(ウィンドウパネルなど)。
  • ウィジェットの木構造の中身やウィジェットの属性は、実行時に変更可能であるものが多い(例えば、木構造からウィジェットを追加・削除できる)。
  • ツールキットはボタンをクリックするなどのユーザーイベントを扱う。イベント検出後のアクションはツールキットが指定するものではなく、アプリケーションが指定する。例えば、ファイルダイアログからユーザーがファイルを選択したら、ファイルダイアログ・ウィジェット自身の反応とそのユーザーイベントの検出はウィジェット・ツールキットが扱うが、ファイルを選択したことに対応する具体的なアクション(そのファイルを読み込むなど)はアプリケーション自身が行う。

ウィジェット・ツールキットは、コンテナの中でのウィジェットの位置決めの手段を必ず持っている。最も簡単な方法は、画面上の絶対座標や上位ウィジェットからの相対座標をピクセル単位で指定する方法だが、ウィジェット同士の相対的な位置関係だけを指定して具体的な座標を指定しない方法もある(レイアウトマネージャ)。

ウィジェットのルック・アンド・フィールはツールキット内でハードコードされる場合もあるが、ウィジェットツールキットによってはユーザーがルック・アンド・フィールを定義できるAPIを提供している。

主要なウィジェット・ツールキット[ソースを編集]

低レベルなもの[ソースを編集]

オペレーティングシステムに組み込まれているもの[ソースを編集]

オペレーティングシステム上の分離した層として実装されているもの[ソースを編集]

  • X Window System は基本的な構成要素 (Xt) を含んでおり、Motif はそれを使っているが、GTK+Qt など大部分のツールキットはこれを使わず、直接 Xlib を使っている。
  • AmigaOSIntuition は、Amiga の ROM に含まれていて、やや高レベルなウィジェットを使い Amiga の GUI である Workbench を呼び出している。Amiga OS 2.0 の Intuition からはディスク上のオブジェクト指向ライブラリとなった。同時に Workbench も Icon もディスクベースとなっている。

高レベルなもの[ソースを編集]

macOS[ソースを編集]

  • Cocoa - macOSで使用される(Aquaも参照されたい)。
  • MacApp Macintosh フレームワーク。
  • MacZoop Macintosh C++フレームワーク。
  • PowerPlant Macintoshフレームワーク。

Windows[ソースを編集]

  • Microsoft Foundation Class (MFC) は、多くの開発者がWindows上の開発で使用している。このC++フレームワークはWindows APIのラッパーであり、独立したツールキットではない。
  • Windows Template Library (WTL) は、ATLの拡張であり、C++テンプレートに基づいたWindows APIのラッパーである。MFCよりも軽量なフレームワークを提供する。
  • Object Windows Library はMFCに相当するボーランドのライブラリ。これもWindows API (Win32 API) のラッパーであり、独立したツールキットではない。
  • Visual Component Library (VCL) はボーランドの C++ BuilderDelphi製品に含まれているツールキット。これもWindows API (Win32 API) のラッパーであり、独立したツールキットではない。
  • Windows Forms (WinForms) は、.NET Frameworkにおけるマネージコード向けWindows APIのラッパーであり、GUI制御用のクラスライブラリからなる。Monoによる互換実装も存在する[1][2]
  • Windows Presentation Foundation (WPF) は、.NET Framework 3.0以降で利用可能なグラフィックスサブシステムである。Direct3Dによるハードウェアレンダリングアクセラレーションをサポートしている。WPFでのユーザーインターフェイスは、任意のCLR言語(例えば C#)やXMLベースのXAML言語を使って定義できる。WPF向けのGUIビルダーとしてMicrosoft Expression Blendがある。
  • Windowsランタイム (WinRT) は、Windows 8で実装されたModern UIアプリケーション開発・実行用のCOMベースフレームワークである。WPF同様にXAMLを利用したUI定義が可能となっている。

UNIXX Window System[ソースを編集]

クロスプラットフォーム[ソースを編集]

カテゴリ分けされていないもの[ソースを編集]

脚注[ソースを編集]

  1. ^ WinForms | Mono
  2. ^ Monoは.NETのクロスプラットフォームかつオープンソースの実装であり、Windows APIのないプラットフォームでも動く互換レイヤーすなわち共通言語基盤 (CLI) を一から実装している。これにより、.NET Framework 2.0の基本APIを提供するが、そのAPI実装は未だ[いつ?]不完全である。

外部リンク[ソースを編集]