Loading article…
この記事では、プログラムのグラフィカル ユーザー インターフェイス(GUI)を構築するために使用されるウィジェット ツールキット( GUI フレームワークとも呼ばれる) の一覧を、さまざまなオペレーティング システムとの関係別にまとめています。
低レベルウィジェットツールキット
オペレーティングシステムに統合
- Mac OS X はCocoaを使用します。Mac OS 9 と Mac OS X は32 ビットアプリケーションにCarbon を使用していました。
- Microsoft Windowsで使用されるWindows API。Microsoftは2006年までカーネルにグラフィックス機能を統合していた[1]
- Haikuオペレーティング システムは、その前身であるBeOSで使用されていたBe APIの拡張および最新化バージョンを使用します。Haiku Inc. は、将来的に BeOS とのバイナリおよびソースの互換性を廃止し、Haiku API を導入する予定です。
オペレーティングシステムの上の別のレイヤーとして
- X Window System には、 Xtまたは「Intrinsics 」と呼ばれる基本的な構成要素が含まれていますが、これらは主にOLIT、Motif、Xawなどの古いツールキットでのみ使用されます。GTKやQtなどの最近のツールキットのほとんどは、これらをバイパスし、XlibまたはXCB を直接使用します。
- Amiga OS Intuition は、以前は Amiga Kickstart ROMに存在し、 Workbench Amiga ネイティブGUIを呼び出す中高レベルのウィジェット ライブラリと統合されていました。Amiga OS 2.0 以降、Intuition.library はディスク ベースでオブジェクト指向になりました。また、Workbench.library と Icon.library もディスク ベースになり、同様のサードパーティ ソリューションに置き換えることができるようになりました。
- 2005年以降、マイクロソフトはWindowsカーネルからグラフィックシステムを削除しました。[2]
高レベルウィジェットツールキット
OSに依存
の上アミーガ
- BOOPSI (Intuition 用基本オブジェクト指向プログラミング システム) は OS 2.0 で導入され、クラス システムによって Intuition が強化されました。クラス システムでは、各クラスが単一のウィジェットを表したり、インターフェイス イベントを記述したりします。これにより、サードパーティの開発者がそれぞれ独自のクラス システムを実現するという進化がもたらされました。
- MUI : オブジェクト指向 GUI ツールキットであり、MorphOSの公式ツールキットです。
- ReAction : オブジェクト指向 GUI ツールキットおよびAmigaOSの公式ツールキット。
- Zune (GUI ツールキット) は、MUI のオープン ソース クローンであり、 AROSの公式ツールキットです。
の上macOS
- Cocoa - macOS で使用されています( Aquaも参照) 。macOS のOPENSTEP系統の結果、Cocoa は Windows もサポートしていますが、そのように公に宣伝されていません。通常、サードパーティの開発者が使用することはできません。 [引用が必要]ただし、WebKitプロジェクト内には、時代遅れで機能が制限された Cocoa のオープンソース サブセットが存在し、 Windows のSafari (Web ブラウザー)でAqua をネイティブにレンダリングするために使用されます。 [引用が必要] GDI と WPF の両方をサポートするApple のiTunesには、フレームワークのほぼ完全なバイナリ バージョンが「Apple Application Support」として含まれています。[引用が必要]
- Carbon - 「クラシック」MacアプリケーションとソフトウェアをMac OS Xに移植するためにMac OS Xで使用される非推奨のフレームワーク。
- MacApp は、 Apple のClassic Mac OS用のフレームワークです。
- PowerPlant は、Metrowerks によるClassic Mac OSのフレームワークです。
- Microsoft Foundation Classes (MFC) は、Windows API をラップした C++ ラッパーです。
- Windowsテンプレート ライブラリ(WTL) は、 ATLのテンプレート ベースの拡張であり、 MFCの代替です。
- Object Windows Library (OWL) は、Borlandの MFC の代替です。
- ビジュアル コンポーネント ライブラリ( VCL)は、 C++BuilderおよびDelphiで使用されるEmbarcaderoのツールキットです。ネイティブ Windows コントロールをラップし、オブジェクト指向クラスとビジュアル デザインを提供しますが、必要に応じて、基礎となるハンドルやその他の WinAPI の詳細にアクセスすることもできます。これはもともとOWLの後継として実装され、90 年代半ばまでに時代遅れの設計モデルとなった OWL/MFC スタイルの UI 作成を省略しました。[3]
- Windows Forms (WinForms) は、GUI コントロールを処理する Microsoft の.NETクラス セットです。クロスプラットフォームのMono実装では、これは独立したツールキットであり、完全にマネージ コードで実装されています(他のプラットフォームには存在しない Windows API をラップしていません)。[4] WinForms の設計は、 VCLの設計によく似ています。
- Windows Presentation Foundation (WPF) は、 .NET Framework 3.0のグラフィカル サブシステムです。WPF では、任意のCLR言語 (例: C# ) またはXMLベースの言語XAMLを使用してユーザー インターフェイスを作成できます。Microsoft Expression Blend は、WPF 用のビジュアル GUI ビルダーです。
- Windows UI ライブラリ(WinUI) は、ユニバーサル アプリのグラフィカル サブシステムです。WinUI では、 C++または任意の.NET 言語(例: C# )、あるいはXMLベースの言語XAML を使用してユーザー インターフェイスを作成できます。Microsoft Expression Blend は、WinUI をサポートするビジュアル GUI ビルダーです。
の上ユニックス、X Window System の下で
X Window System はもともと主に Unix 系オペレーティング システム向けでしたが、現在はCygwin などを使用して Microsoft Windows でも実行できるため、これらのツールキットの一部またはすべてを Windows でも使用できます。
- 共通デスクトップ環境で使用されるMotif。
- LessTif は、 Motif のオープンソース( LGPL ) 実装です。
- MoOLIT は、OPEN LOOKとMotifのルックアンドフィールをつなぐ架け橋です。
- OLIT、Xt ベースのOPEN LOOK組み込みツールキット
- Xaw、X Window System用のProject Athenaウィジェット セット。
- XView、SunView互換の OPEN LOOK ツールキット
クロスプラットフォーム
- Elementary、オープンソース( LGPL )、 Enlightenment Foundation Librariesの一部。
- GTK はオープンソース( LGPL ) で、主に X Window System 用であり、他のプラットフォームに移植され、エミュレートされています。GNOME、Rox、LXDE、Xfce デスクトップ環境で使用されています。Windowsポートはネイティブウィジェットをサポートしています。
- IUP、オープンソース( MIT )、Windows、UNIX、Linux 用の ANSI C で書かれた最小限の GUI ツールキット。
- Tk、オープンソース(BSD スタイル)、 Tclやその他の高レベル スクリプト言語からアクセスされるウィジェット セット( PythonではTkinterとしてインターフェイスされます)。
- XForms 、 X用のフォームライブラリ
- XVT、拡張可能な仮想ツールキット
- CEGUI は、オープンソース( MIT ライセンス) のクロスプラットフォーム ウィジェット ツールキットで、ゲーム 開発用に設計されていますが、アプリケーションやツール開発にも使用できます。複数のレンダラーとオプションのライブラリをサポートします。
- FLTK は、小型で高速になるように設計されたオープンソース( LGPL ) のクロスプラットフォーム ツールキットです。
- FOX ツールキット、オープンソース( LGPL )、クロスプラットフォーム ツールキット。
- GLUI は、GLUTライブラリを使用して作成された非常に小さなツールキットです。
- gtkmm、GTK 用の C++ インターフェース
- Juce は、 Microsoft Windows、X Windows システム、macOS、Android で同じルック アンド フィールの GUI とウィジェット セットを提供します。レンダリングは OpenGL に基づいて行うことができます。
- Qt は、プロプライエタリおよびオープンソース(GPL、LGPL)であり、 Unix および Linux(X11 または Wayland を使用)、 Windows(デスクトップ、 CE および Phone 8)、 macOS、 iOS、 Android、 BlackBerry 10 および組み込み Linux で使用できます。KDE、Trinity、LXQt、およびLuminaデスクトップ環境で使用され、 Ubuntu のUnityシェルでも使用されます。
- Rogue Wave Views (旧ILOG Views) は、Windows および主要な X11 プラットフォーム用の GUI およびグラフィック ライブラリを提供します。
- TnFOX、オープンソース( LGPL )、移植性ツールキット。
- U++ は、 IDE ( BSD ライセンス)にバンドルされたオープン ソースアプリケーション フレームワークで、主にWin32およびUnix 系オペレーティング システム ( X11 ) 用に作成されましたが、現在ではほぼすべてのオペレーティング システムで動作します。
- wxWidgets (旧称 wxWindows)、オープンソース(緩和されたLGPL )、C++、 Python、Perl、Ruby、Haskell向けの複数のプラットフォームにわたる抽象ツールキット。
- Zinc アプリケーション フレームワーク、クロスプラットフォーム ウィジェット ツールキット。
に基づくパイソン
- オープンソースのTkinter ( BSD )は、 Tk GUI ツールキットへの Python バインディングです。Tkinter は、Python の標準の GNU/Linux、Microsoft Windows、および macOS インストールに含まれています。
- オープンソースのKivy ( MIT ) は、マルチタッチ アプリなどの革新的なユーザー インターフェイスを利用するアプリケーションを迅速に開発するための最新のライブラリです。完全に Python で記述されており、Cythonでさらに高速化されています。
- PySideはオープンソース( LGPL ) であり、 The Qt CompanyがQt for Python プロジェクトの一環として開発したクロスプラットフォーム GUI ツールキットQtの Python バインディングです。
- PyQt はオープンソース( GPLおよび商用) であり、Riverbank Computing が開発したクロスプラットフォーム GUI ツールキットQtの別の Python バインディングです。
- PyGTKはオープンソース( LGPL ) であり、GTK グラフィカル ユーザー インターフェイス ライブラリ用の Python ラッパーのセットです。
- オープンソースのwxPython ( wxWindowsライセンス) は、Python プログラミング言語用のクロスプラットフォーム GUI API wxWidgetsのラッパーです。
- オープンソースのPyjs ( Apache License 2.0 ) は、クライアント側の Web およびデスクトップ アプリケーションを開発するための機能豊富な Web アプリケーション フレームワークであり、 Java からのGoogle Web Toolkit (GWT) の移植版です。
に基づくフラッシュ
- Adobe Flash を使用すると、ほとんどの Web ブラウザーやいくつかの携帯電話で実行されるウィジェットを作成できます。
- Adobe Flex は、Web ユーザー インターフェイスを構築するための高レベルのウィジェットを提供します。Flex では Flash ウィジェットを使用できます。
- Flash および Flex ウィジェットは、 Adobe AIRランタイム環境では Web ブラウザーなしで実行されます。
に基づく行く
- オープンソースのFyne ( BSD )は、マテリアル デザインの原則にインスピレーションを受けており、Windows、macOS、Linux、BSD、Android、iOS で一貫した外観と動作を実現するアプリケーションを作成します。
に基づくテキスト
に基づくJavaScript
一般的な
- jQueryUI の
- ムーツール
- QooxdooはWeb用のQtとして理解できる
- スクリプト
- アドビ
- Dojo ツールキット
- Sencha (旧称 Ext JS)
- Telerik 剣道 UI
- ウェビックス
- ウィンJS
- 反応する
フルスタックフレームワーク
- エコー3
- スプラウトコア
- ASP/PHP/JSP/Silverlight 向け Telerik UI
- ヴァーディン- ジャワ
- ZK - リッチな Ajax およびモバイル アプリケーションを構築するための Java Web フレームワーク
リソースベース
- Google ウェブ ツールキット(GWT)
- ピジス
- FBML Facebook マークアップ言語
開発されなくなった
- YUI (Yahoo! ユーザーインターフェースライブラリ)
に基づくSVGA
- RaphaëlはSVGインターフェースとアニメーションのためのJavaScriptツールキットです
に基づくC#
- Gtk# は、基礎となるGTKおよびGNOMEライブラリをラップする C# ラッパーで、 Cで記述されており、Linux、MacOS、Windows で利用できます。
- QtSharp は、 C++言語をベースにしたQtウィジェット ツールキットの C# ラッパーです。
- Windows フォーム。Windows APIのラッパーであり、Windows 上で実行される Microsoft 独自の実装と、クロスプラットフォームのMono の代替実装があります。
に基づくジャワ
- Abstract Window Toolkit (AWT) は、Sun Microsystemsの Java アプリケーション用オリジナル ウィジェット ツールキットです。通常、実行されるプラットフォームごとに別のツールキットを使用します。
- Swing は、AWT ウィジェットの代替としてJ2SE 1.2以降でサポートされている、より機能豊富なウィジェット ツールキットです。Swing は軽量ツールキットであるため、ネイティブ ウィジェットに依存しません。
- Apache Pivotは、Java または JVM 互換言語でリッチ Web アプリケーションを構築するためのオープンソース プラットフォームであり、WTK ウィジェット ツールキットに依存しています。
- JavaFXとFXML。
- Standard Widget Toolkit (SWT) は、 Eclipseプロジェクトの一環として開発された Java 用のネイティブ ウィジェット ツールキットです。SWT は、実行中のプラットフォーム (Windows API、macOS Cocoa、GTK など) の標準ツールキットを基盤として使用します。
- コードネームOneは、もともとクロスプラットフォームのモバイルツールキットとして設計され、後にJavaSEとブラウザ経由のJavaScriptパイプラインの両方を介してデスクトップアプリケーションをサポートするように拡張されました。
- java-gnomeは、 GTKツールキットやGNOMEデスクトップ環境のその他のライブラリへのバインディングを提供します。
- Qt Jambi 、TrolltechのQt公式Javaバインディング。商用サポートと開発は停止している[5]
に基づくオブジェクトパスカル
- FireMonkeyまたは FMX は、2011 年のバージョン XE2 以降、 DelphiおよびC++Builderとともに配布されているクロスプラットフォーム ウィジェットおよびグラフィック ライブラリです。C++Builder を通じて C++ のバインディングがあり、Windows、macOS、iOS、Android、そして最近では Linux をサポートしています。FireMonkey は、ネイティブ編集コントロールなどのプラットフォーム ネイティブ ウィジェットと、ターゲット オペレーティング システムでネイティブに見えるようにスタイル設定されたカスタム ウィジェットをサポートしています。そのグラフィックは GPU アクセラレーションされており、スタイル設定と、独自の実装コントロールとネイティブ システム コントロールの混合をサポートしているため、アプリは重要な場合 ( IMEテキスト入力など) にネイティブ動作を使用できます。
- IP Pascal は、標準言語構造の上に構築されたグラフィックス ライブラリを使用します。また、クロスプラットフォーム (コールバックやその他のトリックなし) の手続き型ツールキットであることも珍しく、標準のシリアル入力および出力パラダイムと完全に上位互換性があります。シリアル出力を備えた完全に標準的なプログラムは、グラフィカル構造を使用して実行および拡張できます。
- Lazarus LCL ( Free Pascalコンパイラ経由のPascal、Object Pascal、Delphi用)、 GTK + 1.2~2.xをラップするクラス ライブラリ、および Windows API (Carbon、Windows CE、Qt4 のサポートはすべて開発中)。
- fpGUI はFree Pascalコンパイラで作成されています。大規模なサードパーティ ライブラリに依存せず、現在は Linux、Windows、Windows CE、Mac (X11 経由) で動作します。Carbon (macOS) への移植が進行中です。
- CLX (Component Library for Cross-platform) は、Borland (現在はEmbarcadero )のDelphi、C++ Builder、Kylixで使用され、Windows と Linux 間のクロスプラットフォーム アプリケーションを作成するために使用されていました。これはQtに基づいており、プログラミング インターフェイスがVCLツールキットのインターフェイスに似たものになるようにラップされていました。現在はメンテナンスも配布もされておらず、 2011 年以降はより多くのプラットフォームをサポートする新しいツールキットであるFireMonkeyに置き換えられています。
に基づくオブジェクティブC
に基づくダーツ
- Flutter (ソフトウェア)は、Google が作成したオープンソースのクロスプラットフォーム フレームワークです。
に基づく迅速
- Cocoa Touchは、 iOS、iPadOS、tvOS向けのアプリケーションを構築するために Apple が作成したフレームワークです。
に基づくルビー
- Shoes (GUI ツールキット)は、グラフィカル ユーザー インターフェイス開発用のクロス プラットフォーム フレームワークです。
まだ分類されていません
ウィジェットツールキットの比較
参照
参考文献
- ^ Microsoft: MS Windows NT カーネルモード ユーザー
- ^ Techworld: マイクロソフト、グラフィックスを OS カーネルの外部に移動
- ^ Teixera、Pacheco、Steve、Xavier (2001)。Borland Delphi 6 開発者ガイド。Sams Publishing。p. 382。ISBN 0-672-32115-7。
{{cite book}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^このバージョンは .NET Framework 2.0のコアAPI を提供しますが、この API の実装はまだ不完全です。
- ^ Qt Software は 4.5 リリース後に Qt Jambi を廃止予定 Archived 26 July 2009 at the Wayback Machine
- ^ https://github.com/cegui/cegui/releases/tag/v0-8-7
- ^ 「PyCEGUI - CEGUI Wiki - Crazy Eddie の GUI システム (オープン ソース)」。
- ^ 「Lua インターフェースの拡張 - CEGUI Wiki - Crazy Eddie の GUI システム (オープン ソース)」。
- ^ 「CEED - CEGUI Wiki - Crazy Eddie の GUI システム (オープン ソース)」。
- ^ https://gitlab.gnome.org/GNOME/gtk/-/tags/4.6.0
- ^ クライアント側ウィンドウへの移行 Archived 27 April 2011 at the Wayback Machine : 「GDK は GDK_NATIVE_WINDOWS 環境変数を探し、設定されていればすべてのウィンドウをネイティブにします。また、他のいくつかの方法で以前のバージョンの動作との互換性を高めようとします。」
- ^ コーディングの恐怖: 非ネイティブ UI は最悪: 「[…] GTK に基づくクロスプラットフォーム UI があり、予想どおり平凡で、最小公分母の結果を生成します:」
- ^ 「IUP - SourceForge.net で /3.28 を参照」。
- ^ 「IUP - ポータブル ユーザー インターフェイス」。
- ^ IUP と他のインターフェース ツールキットの比較: 「[…] Unicode 文字はサポートされていません。」
- ^ 「Nana C++ ライブラリ - 最新の C++ GUI ライブラリ」。
- ^ 「Qt 6.5 リリース」。www.qt.io。The Qt Company。2023年12 月 20 日閲覧。
- ^ Nyström, Sebastian (2009年1月14日). 「NokiaがQtをLGPLでライセンス」。2013年11月11日時点のオリジナルよりアーカイブ。
- ^ WxWidgets と他のツールキットの比較: 「Qt には、wxWidgets のような真のネイティブ ポートはありません。Qt はシステム提供のウィジェットを使用せず、テーマを使用してエミュレートします。つまり、Qt はウィジェットを非常にリアルに描画しますが、各プラットフォームで独自のウィジェットを描画します。」
- ^ 「Qt モジュラー クラス ライブラリ」。Digia。2013 年 11 月 1 日時点のオリジナルからのアーカイブ。Qt
は、サポートする各プラットフォームのネイティブ グラフィック API を使用して、システム リソースを最大限に活用し、アプリケーションがネイティブのルック アンド フィールを持つことを保証します。
- ^ 「Qt 4 スタイル API」。The Qt Company。Qt
の組み込みウィジェットは、ほぼすべての描画に [QStyle] を使用しており、同等のネイティブ ウィジェットとまったく同じように見えるようになっています。
- ^ “wxWidgets: 3.2.6 リリース”. 2024年9月9日. 2024年9月13日閲覧。
- ^ Alan Coopersmith (2015年4月30日). 「[ANNOUNCE] libXaw 1.0.13」xorg-announce@lists.x.org (メーリングリスト) . 2020年7月1日閲覧。
