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

GUIツールキットから転送)

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

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

概要編集

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

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

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

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

主要なウィジェット・ツールキット編集

低レベルなもの編集

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

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

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

高レベルなもの編集

macOS編集

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による互換実装も存在する[2][3]
  • 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定義が可能となっている。

UNIX と X Window System編集

クロスプラットフォーム編集

カテゴリ分けされていないもの編集

注釈・出典編集

  1. ^ D.A.ヤング 著、川手恭輔 訳『X Toolkit プログラミング』株式会社トッパン、1990年7月30日、13頁。ISBN 4-8101-8502-8
  2. ^ WinForms | Mono
  3. ^ Monoは.NETのクロスプラットフォームかつオープンソースの実装であり、Windows APIのないプラットフォームでも動く互換レイヤーすなわち共通言語基盤 (CLI) を一から実装している。これにより、.NET Framework 2.0の基本APIを提供するが、そのAPI実装は未だ[いつ?]不完全である。
  4. ^ QtやJavaFXなどでもレイアウト記述ファイルとしてXMLは広く使われている。

外部リンク編集