ウィジェットツールキットのリスト

この記事では、プログラムのグラフィカル ユーザー インターフェイス(GUI)を構築するために使用されるウィジェット ツールキット( GUI フレームワークとも呼ばれます) の一覧を、さまざまなオペレーティング システムとの関係別に示します。

低レベルウィジェットツールキット

オペレーティングシステムに統合

オペレーティングシステムの上の別のレイヤーとして

  • X Window System には、 Xtまたは「Intrinsics」と呼ばれる基本的な構成要素が含まれていますが、これらは主にOLITMotifXawといった古いツールキットでのみ使用されます。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 ]

高レベルウィジェットツールキット

ウィジェットツールキットの比較表
ツールキット名 ウィンドウズ macOS Unixライク プログラミング言語 ライセンス
AWTクロスプラットフォーム ジャワ
セギはいはいはいC++マサチューセッツ工科大学
ココア部分的 はい いいえ Objective-C独自の
小学校はいはいはい CLGPLBSD
FLTKはいはいはいC++LGPL
フォックスツールキットはいいいえはいC++LGPL
ファインクロスプラットフォーム 行くBSD
GNUステップはい はい はい Objective-CLGPL
GTKはいはいはいCLGPL
キヴィクロスプラットフォーム パイソンマサチューセッツ工科大学
LCLはいはいはいオブジェクトパスカルフリーパスカルLGPL
IUPはいいいえはいCマサチューセッツ工科大学
ジュースクロスプラットフォーム C++GPL、プロプライエタリ
レスティフいいえいいえはいCLGPL
モチーフいいえいいえはいCLGPL
MFCはいいいえいいえC++独自の
OWL(VCLに置き換えられました)はいいいえいいえC++ (ボーランドC++ )独自の
ピボット(WTK)クロスプラットフォーム ジャワApacheライセンス
クォートクロスプラットフォーム C++LGPL、プロプライエタリ
ローグウェーブビューはいいいえはいC++独自の
シューズ(GUIツールキット)クロスプラットフォーム ルビーマサチューセッツ工科大学
スイングクロスプラットフォーム ジャワ
TKはい はい はい CBSD
TnFOXはいはいはいC++LGPL
U++クロスプラットフォーム C++BSD
VCL(OWLに代わる)はいいいえいいえオブジェクトパスカルデルファイ独自の
WTLはいいいえいいえC++Microsoft パブリック ライセンス
wxWidgetsクロスプラットフォーム C++WxWindowsライセンス

OSに依存

  • BOOPSI(Intuition向け基本オブジェクト指向プログラミングシステム)はOS 2.0で導入され、Intuitionをクラスシステムで強化しました。クラスシステムでは、各クラスが単一のウィジェットを表すか、インターフェースイベントを記述します。これにより、サードパーティの開発者がそれぞれ独自のクラスシステムを実現できるという進化がもたらされました。
  • MUI : オブジェクト指向 GUI ツールキットであり、MorphOSの公式ツールキットです。
  • ReAction : オブジェクト指向 GUI ツールキットおよびAmigaOSの公式ツールキット。
  • Zune (GUI ツールキット)は、MUI のオープン ソース クローンであり、 AROSの公式ツールキットです。

macOSの場合

UnixのX Window System の場合

X Window System は、もともと主に Unix 系オペレーティング システム向けでしたが、現在ではCygwinなどを使用して Microsoft Windows でも実行されるため、これらのツールキットの一部またはすべてを Windows でも使用できます。

クロスプラットフォーム

Cベース(他の言語へのバインディングを含む)

C++ベース(他の言語へのバインディングを含む)

Pythonベース

Goベース

  • オープンソースのFyne ( BSD ) は、マテリアル デザインの原則にインスピレーションを受け、Windows、macOS、Linux、BSD、Android、iOS で外観と動作が一貫したアプリケーションを作成します。

XMLベース

JavaScriptベース

一般的な

RIA

フルスタックフレームワーク

リソースベース

開発が終了

  • YUI (Yahoo! ユーザーインターフェースライブラリ)

SVGベース

  • RaphaëlはSVGインターフェースとアニメーションのためのJavaScriptツールキットです。

C#ベース

Javaベース

  • Abstract Window Toolkit (AWT) は、Sun Microsystemsが Java アプリケーション向けに独自に開発したウィジェットツールキットです。通常、AWT は実行されるプラットフォームごとに別のツールキットを使用します。
  • Swingは、AWTウィジェットの代替としてJ2SE 1.2以降でサポートされている、より高機能なウィジェットツールキットです。Swingは軽量なツールキットであるため、ネイティブウィジェットに依存しません。
  • Apache Pivotは、Java または JVM 互換言語でリッチ Web アプリケーションを構築するためのオープンソース プラットフォームであり、WTK ウィジェット ツールキットに依存しています。
  • JavaFXFXML
  • 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 ]
  • ZK - リッチな Ajax およびモバイル アプリケーションを構築するための Java Web フレームワーク

Object Pascalベース

  • FireMonkey (FMX)は、2011年のバージョンXE2以降、 DelphiおよびC++Builderに同梱されているクロスプラットフォームのウィジェットおよびグラフィックライブラリです。C ++Builderを介してC++バインディングを備え、Windows、macOS、iOS、Android、そして最近ではLinuxをサポートしています。FireMonkeyは、ネイティブ編集コントロールなどのプラットフォームネイティブウィジェットと、ターゲットオペレーティングシステムでネイティブに見えるようにスタイル設定されたカスタムウィジェットをサポートします。グラフィックスはGPUアクセラレーションに対応し、スタイル設定や、独自実装コントロールとネイティブシステムコントロールの混在をサポートしているため、アプリは重要な場面(例えばIMEテキスト入力)でネイティブの動作を利用できます。
  • IP Pascalは、標準的な言語構造上に構築されたグラフィックスライブラリを使用します。また、クロスプラットフォーム(コールバックなどのトリックなし)の手続き型ツールキットであることも特徴で、標準的なシリアル入出力パラダイムとの完全な上位互換性を備えています。シリアル出力を持つ完全に標準的なプログラムを実行でき、グラフィカルな構造を使用して拡張できます。
  • Lazarus LCL ( Free Pascalコンパイラ経由のPascalObject PascalDelphi用)、 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)のDelphiC++ BuilderKylixで使用され、WindowsとLinux間のクロスプラットフォームアプリケーションを開発するために使用されていました。Qtをベースにしており、プログラミングインターフェースがVCLツールキットに類似するようにラップされていました。CLXは現在はメンテナンスと配布が終了しており、 2011年以降は、より多くのプラットフォームをサポートする新しいツールキットであるFireMonkeyに置き換えられています。

Objective-Cベース

ダートベース

Swiftをベースに

Rubyベース

  • Shoes (GUI ツールキット)は、グラフィカル ユーザー インターフェイス開発用のクロス プラットフォーム フレームワークです。

まだ分​​類されていません

ウィジェットツールキットの比較

ツールキット 初回リリース 最新リリース 主要言語 バインディング ツール ライセンス 長所 短所 バックエンド
ATLWTL2004 C++ ビジュアルスタジオ 持ち運び不可
AWT1995 ジャワ ポータブル
セギ2004 0.8.7 (2016年4月28日) [±] [ 6 ] ( 2016-04-28 )C++ Python[ 7 ] Lua (tolua++ を使用) [ 8 ]シード[ 9 ]MITライセンス無料ライセンス、高速、クロスプラットフォーム、ポータブル、無料のGUI編集ツール
CLXC++
小学校2007年(EFL:2001年) 2016 C JavaScript、Python、Vala、C++ エディジェ、エディジェ LGPLポータブル、安定、高速、指に優しい
FLTK1998 2019 C++ Python ( pyFLTK )、 Perl ( FLTK.pm )、 Ruby ( Ruby/FLTK )、 Tcl ( Tcl Fltk )、 Guile ( guile-fltk )、 Eiffel ( IFLTK )、 C ( cfltk )、 Rust ( FLTK-rs ) FLUID(高速軽量UIデザイナー) LGPL (静的リンクを許可する例外あり) 高速で、静的リンクに十分な小ささ ウィジェットの選択肢が限られている
フラッター2017 ダーツ BSDポータブル、クロスプラットフォーム、無料ライセンス、豊富なウィジェットセット
キツネ1997 C++ Ruby ( FXRuby )、Python ( FXPy )、Eiffel ( EiffelFox ) プラットフォーム間で一貫性がある 非ネイティブなルックアンドフィール
ファイン2018 2020年(1.3.2) 行く BSDプラットフォーム間で一貫性があり、ランタイム依存性がない OpenGLが必要
グルイC++
GNUステップ1994 2017 Objective-C Java、Ruby、Scheme ゴーム(コンピューティング)アプリはGPL 、ライブラリは LGPLポータブル、無料ライセンス macOSネイティブ(Cocoa搭載) X11Win32ウェイランド
GTK1997 4.6.0 [ 10 ] (2021年12月30日) [±] (2021-12-30)C C++ ( gtkmm )、Perl ( Gtk2-perl )、Ruby ( ruby​​-gtk2 )、Python ( PyGTK )、Haskell ( Gtk2Hs )、Java ( java-gnome ) (Microsoft Windows では利用できません)、C# ( Gtk# )、PHP ( PHP-GTK )、Ada ( GTKAda )、D ( gtkD )、FreeBasic ( GladeToBac )、Go ( go-gtk )、OCaml ( lablgtk )、JavaScript ( GjsSeed (プログラミング) )、Fortran ( gtk-fortran )、Lua ( lua-lgi )、R ( RGtk2 )、その他(GTK サーバー経由)GladeGNOMEビルダーLGPLポータブル、無料ライセンス 一部原産のみ。[ 11 ] [ 12 ]
IUP1992 2019年[ 13 ]C ルア(IupLua[ 14 ]LEDC: LED用コンパイラマサチューセッツ工科大学ポータブル、軽量、ネイティブAPIを使用、ネイティブのルック&フィール、無料ライセンス 非Unicode(プレーンASCIIのみ)[ 15 ]
ジュース2004 C++ ジューサー GPL、商用 クロスプラットフォーム、追加のオーディオ プラグイン ラッピング ツール ( VSTRTASAAXなど) 無料版にはスプラッシュスクリーンがあります。
MFCWinAPI1992 C++ ビジュアルスタジオ 移植性はない(ただし、Wine はX Window用に実装している)
モチーフレスティフ1980年代 C BXプロ
クォート1995 6.5 LTS [ 16 ](2023年4月3日)[±] (2023-04-03)C++ Ruby ( QtRuby )、Python ( PyQtPySidePythonQt )、Ada ( QtAda )、c# ( Qyoto )、Java ( Qt Jambi )、Pascal ( FreePascal Qt4 )、Perl ( Perl Qt4 )、PHP(PHP-Qt)、Haskell (Qt Haskell)、Lua ( lqtQtLua )、Dao ( DaoQt )、Tcl ( qtcl )、Common Lisp ( CommonQt )、D ( QtD )、Harbor ( hbqt ) Qt デザイナー、Qt クリエイターGPLLGPL[ 17 ]ポータブルで豊富なウィジェットセット、GUIビルダー、無料ライセンス、安定したAPI部分的にネイティブのみ。[ 18 ] [ 19 ] [ 20 ]
シューズ(GUIツールキット)2007 2010 ルビーMITライセンス/オープンソース シンプルさと使いやすさ
スイング1996 ジャワ Eclipse、NetBeans OpenJDKGPLポータブル(Java)、高度なウィジェット、GUIビルダー
JavaFX2008 2022 ジャワ NetBeans、シーンビルダー GPL
SWTジャワ D ( DWT ) 日食 ポータブル
TK1991 2025 C、Tcl Ruby ( RubyTk )、Python ( Tkinter )、Perl ( Perl/Tk )、Ada ( TASH )、Common Lisp ( LTk )、Erlang ( etk )、... | BSD非常に移植性が高く、多くの言語バインディングに対応
U++2004 2022 C++ IDE BSDポータブル、NTL、無料ライセンス Androidでは未開発
VCLデルファイ
WindowsフォームCLI言語 CLI言語 式、Visual Studio 移植性の問題、MVCがない
WPFXAMLシルバーライト2007 CLI言語 CLI言語 式、Visual Studio 移植性の問題
wxWidgets1992 3.3.1 (2025年7月21日 (2025-07-21)

[ 21 ] ) [±]

C++ C++ (ネイティブ)、Ruby ( wxRuby )、Python ( wxPython )、Perl ( wxPerl )、Java ( wxJavajwx! )、Lua ( wxLua )、Tcl ( wxTCL )、JavaScript ( GLUEscript )、Smalltalk ( wxSqueak )、Erlang ( wxErlang )、Haskell ( wxHaskell )、C ( wxC )、D ( wxD )、. NETフレームワーク ( wxNet )、Common Lisp ( wxCL )、Basic ( wxBasic )、BlitzMax ( wxMax )、Euphoria ( wxEuphoria )、Ada ( wxAda )、Pike ( wxPike ) VisualWx、Boa コンストラクター、PythonCard、Spe、XRCed、wxGladewxFormBuilder、DialogBlocks ($)、wxDesigner ($) wxWindowsライセンスポータブルで豊富なウィジェット セット、無料ライセンス、MFC とのセマンティック類似性により、移行が容易になります。
ザウアテナ1983 1.0.13 [ 22 ]C MIT X11
XULXML、JavaScript ポータブル
XVT1989 2010 CとC++ C の設計と C++ のアーキテクチャ 独自の クロスプラットフォーム、豊富なウィジェットセット、CおよびC++ GUIビルダー、非常に安定
ツールキット 初回リリース 最新リリース 主要言語 バインディング ツール ライセンス 長所 短所 バックエンド

参照

参考文献

  1. ^ Microsoft: MS Windows NT カーネルモードユーザー
  2. ^ Techworld: Microsoft がグラフィックスを OS カーネルの外部に移動
  3. ^ Pacheco, Teixera; Xavier, Steve (2001). Borland Delphi 6 開発者ガイド. Sams Publishing. p. 382. ISBN 0-672-32115-7
  4. ^このバージョンは.NET Framework 2.0コアAPIを提供しますが、この API の実装はまだ不完全です。
  5. ^ Qt Softwareは4.5リリース後にQt Jambiを廃止予定Archived 26 July 2009 at the Wayback Machine
  6. ^ https://github.com/cegui/cegui/releases/tag/v0-8-7
  7. ^ 「PyCEGUI - CEGUI Wiki - Crazy Eddie の GUI システム (オープンソース)」
  8. ^ 「Lua インターフェースの拡張 - CEGUI Wiki - Crazy Eddie の GUI システム (オープンソース)」
  9. ^ 「CEED - CEGUI Wiki - Crazy Eddie の GUI システム (オープン ソース)」
  10. ^ https://gitlab.gnome.org/GNOME/gtk/-/tags/4.6.0
  11. ^クライアントサイドウィンドウへの移行Archived 27 April 2011 at the Wayback Machine : 「GDK は GDK_NATIVE_WINDOWS 環境変数を検索し、設定されている場合、すべてのウィンドウをネイティブウィンドウにします。また、他のいくつかの方法で、以前のバージョンの動作との互換性を高めようとします。」
  12. ^コーディングホラー: 非ネイティブ UI は最悪: 「[…] GTK ベースのクロスプラットフォーム UI があり、予想どおり当たり障りのない、最低共通分母の結果を生成します。」
  13. ^ 「IUP - SourceForge.net で /3.28 を参照」
  14. ^ 「IUP - ポータブルユーザーインターフェース」
  15. ^ IUP と他のインターフェース ツールキットの比較: 「[…] Unicode 文字はサポートされていません。」
  16. ^ 「Qt 6.5リリース」 . www.qt.io. The Qt Company . 2023年12月20日閲覧
  17. ^ Nyström, Sebastian (2009年1月14日). 「Nokia、QtをLGPLでライセンス」 . 2013年11月11日時点のオリジナルよりアーカイブ
  18. ^ WxWidgets と他のツールキットの比較: 「Qt には wxWidgets のような真のネイティブポートがありません。Qt はシステム提供のウィジェットを使用せず、テーマを使ってエミュレートします。つまり、Qt はウィジェットを非常にリアルに描画しますが、プラットフォームごとに独自のウィジェットを描画します。」
  19. ^ 「Qtモジュラークラスライブラリ」。Digia。2013年11月1日時点のオリジナルからのアーカイブ。Qtは、サポートする各プラットフォームのネイティブグラフィックAPIを使用し、システムリソースを最大限に活用し、アプリケーションがネイティブのルックアンドフィールを持つことを保証します。
  20. ^ 「Qt 4 スタイル API」 . Qt Company . Qt の組み込みウィジェットは、ほぼすべての描画に [QStyle] を使用しており、同等のネイティブウィジェットと全く同じ外観を実現しています。
  21. ^ "wxWidgets: 3.3.1 リリース" . 2024年9月9日. 2024年9月13日閲覧
  22. ^ Alan Coopersmith (2015年4月30日). 「[ANNOUNCE] libXaw 1.0.13」 . [email protected] (メーリングリスト) . 2020年7月1日閲覧