ウィジェット・ツールキットとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > ウィジェット・ツールキットの意味・解説 

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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/01/11 20:37 UTC 版)

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

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

概要

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

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

ウィジェット・ツールキットは、コンテナの中でのウィジェットの位置決めの手段を必ず持っている。最も簡単な方法は、画面上の絶対座標や上位ウィジェットからの相対座標をピクセル単位で指定する方法だが、ウィジェット同士の相対的な位置関係だけを指定して具体的な座標を指定しない方法もある(レイアウトマネージャ)。多くのツールキットは、統合開発環境と連携した視覚的なGUIデザイナーをサポートし、直感的なGUI部品の配置およびプレビューを使用したプロトタイピング (Rapid Application Development, RAD) も可能となっている。

GUI部品の配置や各種プロパティの設定は、ロジックを記述するためのプログラミング言語によって直接ソースファイルに記述する方法のほか、独自のリソーススクリプトやXMLなどの形式で、ロジックを記述するソースファイルとは別のファイルに分けて記述することのできる機能をサポートするツールキットもある。レイアウト定義を別ファイルに分離することで、直感的なプレビューやプロトタイピングを可能にするデザイン補助ツールを開発しやすくなるなどのメリットがあるが、複数のファイルにUIの記述が分散することで、逆に実装が複雑化してしまったりするデメリットもある。プログラマーが手作業で編集せずに、デザイン補助ツールを経由して操作することで自動生成されたレイアウト定義ファイルのコードは、バージョン管理ツールなどを用いて複数人でソースコードを共有して開発する際にコンフリクトの解消が難しくなることもある。

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

GUIアプリケーションの開発効率やメンテナンス性を向上するために、Model-View-Controller (MVC) やModel-View-ViewModel (MVVM) といった設計パターンが使用されることもある。ツールキットが標準的にこれらの設計パターンをサポートしていることもある。MVVMに関してはデータバインディング機能のサポートが前提となる。

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

低レベルなもの

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

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

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

高レベルなもの

macOS

  • Cocoa - macOSのアプリ開発で使用される(Aquaも参照されたい)。UIフレームワークとしてAppKitを含む[2][3]
  • MacApp英語版 - Macintosh (Mac OS XおよびMac OS 9) フレームワーク[4]
  • MacZoop - Macintosh C++フレームワーク。
  • PowerPlant英語版 - Macintoshフレームワーク。
  • SwiftUI - Swiftのみを使用してUIを宣言的に記述できるフレームワーク[5]

iOS

Windows

  • Microsoft Foundation Class (MFC) は、1990年代から存在するWindows専用の古いC++フレームワークである。MFCは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) のラッパーであり、独立したツールキットではないが、MFCよりも高度な抽象化およびRAD環境を提供する。
  • Windows Forms (WinForms) は、.NET Frameworkにおけるマネージコード向けWindows APIのラッパーであり、GUI制御用のクラスライブラリからなる。設計はVCLに近く、Microsoft Visual Studioに統合されたRADをサポートする。Monoによる互換実装も存在する[8][注釈 1]。Windows限定で.NET Core 3.0以降にも移植された。
  • Windows Presentation Foundation (WPF) は、.NET Framework 3.0以降で利用可能なグラフィックスサブシステムである。Direct3Dによるハードウェアレンダリングアクセラレーションをサポートしている。WPFでのユーザーインターフェイスは、任意のCLR言語(例えばC#/VB.NET)やXMLベースのXAML言語を使って定義できる。WPF向けのGUIビルダーとしてMicrosoft Expression Blendがある。Windows限定で.NET Core 3.0以降にも移植された。
  • Windowsランタイム (WinRT) およびWindows UI Library (WinUI) は、Windows 8で実装されたModern UIアプリケーション開発・実行用のCOMベースフレームワークである。WPF同様にXAMLを利用したUI定義が可能となっている。

Android

  • レイアウトXML - 独自のXML形式を利用してレイアウトやカスタム部品を定義できる[9]
  • Jetpack Compose - Kotlinのみを使用してUIを宣言的に記述できるフレームワーク[10]。SwiftUIと類似のコンセプトを持つ。

UNIX と X Window System

クロスプラットフォーム

  • Flashベース
    • Adobe Flashを使って多くのウェブブラウザと一部の携帯電話で機能するウィジェットを作成できる。
    • Adobe Flexはウェブブラウザ用の高度なウィジェットを提供する。FlashのウィジェットはFlexで利用可能。
    • FlashとFlexのウィジェットはAdobe Integrated Runtime (AIR) を使ってウェブブラウザを用いずに利用可能となる予定である[いつ?]
    • Flashのフリーソフトウェアとしての再実装がGNU Gnashである。開発中であるが、こちらもFlashのウィジェットをウェブブラウザを使わずに利用可能。
  • XMLベース[注釈 2]
  • XAMLおよび.NETベース
  • Ajaxベース
  • 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、macOS、さらに組み込みシステムで使用可能である。また、商用バージョン (QPL) も存在する。KDEで使われている。
    • Tkは、Tcl上あるいは他のスクリプト言語Pythonなど)で使用するウィジェットセット。
    • wxWidgets(以前の名称はwxWindows)は、オープンソース(ゆるいLGPL)であり、C++、PythonPerlから使えるクロスプラットフォームなツールキットである。
    • FLTKは、オープンソース (LGPL) であり、小さくて高速なのが特徴。
    • FOX toolkit は、オープンソース (LGPL) であり、クロスプラットフォームである。
    • Agar移動した?
    • CEGUI
    • GLUI
    • Juce
    • Ultimate++
    • Visual Component Framework (VCF)
    • YAAF
    • NWSTK

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

脚注

注釈

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

出典

外部リンク



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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/05/28 07:53 UTC 版)

ルック・アンド・フィール」の記事における「ウィジェット・ツールキット」の解説

オペレーティングシステムユーザインタフェース反して製品と一体である部品ルック・アンド・フィールとして、ウィジェット・ツールキットはよく、ユーザに、デフォルトルック・アンド・フィールを得るか、完全に彼らが自分定義することでアプリケーションルック・アンド・フィール特殊化することを許している。この特殊化ユーザソフトウェアふれあう方法で完全に特殊化するスキンウィジェット外観)によって実現できるアプリケーション提携するルック・アンド・フィールの定義は初期化によって行われるが、Java API一部であるいくつかの Swing ウィジェットツールキットのようなウィジェット・ツールキットは、ユーザ実行時ルック・アンド・フィール変更許可するルック・アンド・フィール設定サポートするウィジェット・ツールキットのいくつかの例: XUL: ユーザインタフェースルック・アンド・フィールXUL定義ファイル関連するCSSファイル特殊化できる。デフォルトから特殊化できるプロパティ例えば、ウィジェット全景背景フォントウィジェットサイズなどである。 Swing は、デフォルトまたは存在するもの、または寄せ集め作ったもの、またはJ2SE 5.0から利用可能になったsynthスキン可能なルック・アンド・フィール)と呼ばれるXMLプロパティファイルによってウィジェット特殊化サポートする

※この「ウィジェット・ツールキット」の解説は、「ルック・アンド・フィール」の解説の一部です。
「ウィジェット・ツールキット」を含む「ルック・アンド・フィール」の記事については、「ルック・アンド・フィール」の概要を参照ください。

ウィキペディア小見出し辞書の「ウィジェット・ツールキット」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ウィジェット・ツールキット」の関連用語

ウィジェット・ツールキットのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ウィジェット・ツールキットのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのウィジェット・ツールキット (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのルック・アンド・フィール (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS