Это не официальный сайт wikipedia.org 01.01.2023

Список инструментариев графического интерфейса — Википедия

Список инструментариев графического интерфейса

Данная статья предоставляет список инструментариев графического интерфейса (также известных как GUI фреймворки ), используемых для создания графического интерфейса пользователя, отсортированных по их связям с различными операционными системами .

Низкоуровневые инструментарииПравить

Интегрированные в операционную системуПравить

  • macOS использует Cocoa . Mac OS9 и OS X используют Carbon для 32-битных приложений.
  • API Windows, используется в Microsoft Windows . Microsoft интегрировала графические функции в ядро до 2006 года [1] .
  • Haiku использует расширенную и модернизированную версию Be API, которая использовалась ее духовным предшественником BeOS . Ожидается, что в какой-то момент в будущем Haiku Inc. откажется от совместимости бинарных и исходных кодов с BeOS, что приведет к появлению собственного Haiku API.

Как отдельный слой поверх операционной системыПравить

  • X Window System содержит примитивные строительные блоки, называемые Xt или «Intrinsics», но в основном они используются только старыми наборами инструментов, такими как: OLIT, Motif и Xaw . Большинство современных наборов инструментов, таких как GTK или Qt, обходят их и напрямую используют Xlib или XCB .
  • Amiga OS Intuition ранее присутствовала в ПЗУ Amiga Kickstart и интегрировалась с библиотекой виджетов среднего и высокого уровня, которая вызывала собственный графический интерфейс Workbench Amiga. Начиная с Amiga OS 2.0, Intuition.library стала дисковой и объектно-ориентированной. Также Workbench.library и Icon.library стали дисковыми, и их можно было заменить аналогичными сторонними решениями.
  • С 2005 года Microsoft убрала графическую систему из ядра Windows. [2]

Высокоуровневые инструментарииПравить

Таблица сравнения инструментариев графического интерфейса
Название Windows macOS Unix-like Язык программирования Лицензия
AWT cross-platform Java
CEGUI Да Да Да C++ MIT
Cocoa Нет Да Нет Objective-C Proprietary
Elementary Да Да Да C LGPL, BSD
FLTK Да Да Да C++ LGPL
Fox toolkit Да Нет Да C++ LGPL
Fyne cross-platform Go BSD
GNUstep Да Да Да Objective-C LGPL
GTK Да Да Да C LGPL
Kivy cross-platform Python MIT
LCL Да Да Да Object Pascal (Free Pascal) LGPL
IUP Да Нет Да C MIT
Juce Да Да Да C++ GPL, proprietary
LessTif Нет Нет Да C LGPL
MFC Да Нет Нет C++ Proprietary
Nana C++ Да Нет Да C++ Boost license
OWL (superseded by VCL) Да Нет Нет C++ (Borland C++) Proprietary
Pivot (WTK) cross-platform Java Apache License
CGI Studio[3] Да Да Да C++ proprietary
Qt Да Да Да C++ LGPL, proprietary
Rogue Wave Views Да Нет Да C++ proprietary
Shoes (GUI toolkit) cross-platform Ruby MIT
Swing cross-platform Java
Tk Да Да Да C BSD
TnFOX Да Да Да C++ LGPL
Ultimate++ Да Да Да C++ BSD
VCL (supersedes OWL) Да Нет Нет Object Pascal (Delphi) Proprietary
WTL Да Нет Нет C++ Microsoft Public License
wxWidgets Да Да Да C++ WxWindows license

Зависимы от ОСПравить

На AmigaПравить

  • BOOPSI была представлена в OS 2.0 и расширена с помощью системы классов, в которой каждый класс представляет отдельный виджет или описывает событие интерфейса. Это привело к эволюции, в которой сторонние разработчики реализовали свои собственные системы классов.
  • MUI : объектно-ориентированный инструментарий и официальный инструментарий для MorphOS .
  • ReAction : объектно-ориентированный инструментарий и официальный инструментарий для AmigaOS .
  • Zune (инструментарий GUI) — это клон MUI с открытым исходным кодом и официальный инструментарий для AROS .

На MacintoshПравить

  • Cocoa — используется в OS X (см. также Aqua ) .
  • Фреймворк MacApp для Macintosh.
  • Фреймворк PowerPlant Macintosh.

На Microsoft WindowsПравить

  • Microsoft Foundation Classes (MFC), оболочка C++ для Windows API.
  • Библиотека шаблонов Windows (WTL), основанное на шаблонах расширение ATL и замена MFC .
  • Object Windows Library (OWL), альтернатива Borland MFC.
  • Библиотека визуальных компонентов (VCL) — это инструментарий Embarcadero, используемый в C++Builder и Delphi . Он является оболочкой для собственных элементов управления Windows, предоставляя объектно-ориентированные классы и визуальный дизайн, а также предоставляя доступ к базовым дескрипторам и другим деталям WinAPI, если это необходимо. Первоначально он был реализован как преемник OWL, пропуская стиль создания пользовательского интерфейса OWL/MFC, который к середине девяностых был устаревшей моделью дизайна. [4]
  • Windows Forms (WinForms) — набор классов .NET, обрабатывающих элементы управления графическим интерфейсом. В кросс-платформенной реализации Mono это независимый набор инструментов, полностью реализованный в управляемом коде (не обертывающий Windows API, которого нет на других платформах). [5] Дизайн WinForms очень похож на VCL .
  • Windows Presentation Foundation (WPF) — это графическая подсистема платформы .NET Framework 3.0 . Пользовательские интерфейсы могут быть созданы в WPF с использованием любого из языков CLR (например, C# ) или с языком XAML на основе XML . Microsoft Expression Blend — это визуальный конструктор графического интерфейса для WPF.
  • Библиотека пользовательского интерфейса Windows (WinUI) — это графическая подсистема универсальных приложений . Пользовательские интерфейсы можно создавать в WinUI с помощью C++ или любого из . NET (например, C# ) или с языком XAML на основе XML . Microsoft Expression Blend — это визуальный конструктор графического интерфейса, поддерживающий WinUI.

В Unix, под X Window SystemПравить

Обратите внимание, что X Window System предназначалась в первую очередь для Unix-подобных операционных систем, но теперь она работает и в Microsoft Windows с использованием, например, Cygwin, поэтому некоторые или все эти наборы инструментов также можно использовать под Windows.

  • Motif, используемый в Common Desktop Environment .
  • LessTif — версия Motif с открытым исходным кодом ( LGPL ).
  • MoOLIT, мост между внешним видом OPEN LOOK и Motif
  • OLIT, набор инструментов OPEN LOOK на основе Xt.
  • Xaw, набор виджетов Project Athena для X Window System .
  • XView, набор инструментов OPEN LOOK, совместимый с SunView .

КроссплатформенныеПравить

На основе C (включая привязки к другим языкам)Править

  • Elementary, с открытым исходным кодом ( LGPL ), часть библиотек Enlightenment Foundation, быстрая, стабильная и масштабируемая библиотека, которую можно использовать для создания многофункциональных и быстрых приложений, которые можно использовать на чем угодно, от повседневных настольных компьютеров до небольших КПК и приставки.
  • GTK с открытым исходным кодом ( LGPL ), в первую очередь для X Window System, перенесенный на другие платформы и эмулируемый ими; используется в средах рабочего стола GNOME, Rox, LXDE и Xfce . Порт Windows поддерживает собственные виджеты.
  • IUP с открытым исходным кодом ( MIT ), минималистский набор инструментов с графическим интерфейсом на ANSI C для Windows, UNIX и Linux.
  • Tk, с открытым исходным кодом (BSD-style), набор виджетов, доступ к которому осуществляется из Tcl и других языков сценариев высокого уровня (с интерфейсом в Python как Tkinter ).
  • XForms, Forms Library для X
  • XVT, расширяемый виртуальный инструментарий

На основе C++ (включая привязки к другим языкам)Править

  • CEGUI, с открытым исходным кодом ( лицензия MIT ), кроссплатформенный набор инструментов для виджетов, предназначенный для разработки игр, но также пригодный для использования при разработке приложений и инструментов. Поддерживает несколько средств визуализации и дополнительных библиотек.
  • FLTK, открытый исходный код ( LGPL ), кроссплатформенный набор инструментов, разработанный, чтобы быть небольшим и быстрым.
  • Инструментарий FOX, с открытым исходным кодом ( LGPL ), кроссплатформенный инструментарий.
  • GLUI, очень маленький инструментарий, написанный с помощью библиотеки GLUT .
  • gtkmm, интерфейс C++ для GTK
  • Juce предоставляет графический интерфейс и набор виджетов с одинаковым внешним видом в Microsoft Windows, X Window Systems, OS X и Android. Рендеринг может быть основан на OpenGL.
  • Nana C++ с открытым исходным кодом (лицензия Boost), кроссплатформенный набор инструментов, разработанный для обеспечения современного программирования графического интерфейса с использованием C++.
  • Qt, проприетарный и с открытым исходным кодом ( GPL, LGPL ), доступный под Unix и Linux (с X11 или Wayland), MS Windows (Desktop, CE и Phone 8), OS X, iOS, Android, BlackBerry 10 и Embedded Linux; используется в среде рабочего стола KDE, Trinity, LXQt и Lumina, а также в оболочке Ubuntu Unity .
  • Rogue Wave Views (ранее ILOG Views) предоставляет графический интерфейс и графическую библиотеку для Windows и основных платформ X11.
  • TnFOX, с открытым исходным кодом ( LGPL ), портативный набор инструментов.
  • Ultimate++ — это бесплатная среда приложений Win32 / X11 в комплекте с IDE ( лицензия BSD ).
  • Visual Component Framework (VCF) — это C++ фрэймворк с открытым исходным кодом ( лицензия BSD ).
  • wxWidgets (ранее wxWindows), с открытым исходным кодом (расслабленная LGPL ), абстрагирует наборы инструментов для нескольких платформ для C++, Python, Perl, Ruby и Haskell .
  • Zinc Application Framework, кроссплатформенный набор виджетов.

На основе OpenGLПравить

  • Clutter (LGPL) (на C) — это программная библиотека с открытым исходным кодом для создания быстрых, визуально насыщенных и анимированных графических пользовательских интерфейсов.

На основе FlashПравить

  • Adobe Flash позволяет создавать виджеты, работающие в большинстве веб-браузеров и на нескольких мобильных телефонах.
  • Adobe Flex предоставляет виджеты высокого уровня для создания пользовательских веб-интерфейсов. Виджеты Flash можно использовать во Flex.
  • Виджеты Flash и Flex будут работать без веб-браузера в среде выполнения Adobe AIR .

На основе GoПравить

  • Fyne с открытым исходным кодом ( BSD ) вдохновлен принципами Material Design для создания приложений, которые выглядят и ведут себя одинаково в Windows, macOS, Linux, BSD, Android и iOS.

На основе XMLПравить

На основе JavaScriptПравить

Общий

RIA

Full-stack framework

  • Echo3
  • SproutCore
  • Telerik UI для ASP/PHP/JSP/Silverlight
  • Vaadin - Java
  • ZK — веб-фреймворк Java для создания многофункциональных Ajax-приложений и мобильных приложений.

Ресурсные

Больше не разрабатываются

  • YUI (Yahoo! User Interface Library)

На основе SVGПравить

  • Raphaël — это набор инструментов JavaScript для интерфейсов и анимации SVG.

На основе С#Править

  • Gtk#, оболочки C# вокруг базовых библиотек GTK и GNOME, написанные на C и доступные в Linux, MacOS и Windows.
  • QtSharp, оболочка C# вокруг инструментария виджетов Qt, который сам основан на языке C++ .
  • Windows Forms . Существует оригинальная реализация Microsoft, которая представляет собой оболочку API Windows и работает в Windows, и альтернативная реализация Mono, которая является кросс-платформенной.

На основе JavaПравить

  • Набор инструментов Abstract Window Toolkit (AWT) — это оригинальный набор инструментов виджетов Sun Microsystems для приложений Java. Обычно он использует другой набор инструментов на каждой платформе, на которой он работает.
  • Swing — это инструментарий виджетов, поддерживаемый начиная с J2SE 1.2 в качестве замены виджетов AWT. Swing — это облегченный набор инструментов, то есть он не зависит от cистемных виджетов.
  • Apache Pivot — это платформа с открытым исходным кодом для создания многофункциональных веб-приложений на Java или любом другом языке, совместимом с JVM, и опирается на набор инструментов виджетов WTK.
  • JavaFX и FXML .
  • Standard Widget Toolkit (SWT) — это собственный набор инструментов виджетов для Java, разработанный как часть проекта Eclipse . SWT использует стандартный набор инструментов для работающей платформы (например, Windows API, OS X Cocoa или GTK).
  • Первоначально Codename One был разработан как кроссплатформенный мобильный инструментарий, который позже был расширен для поддержки настольных приложений как через JavaSE, так и через конвейер JavaScript в браузерах.
  • java-gnome обеспечивает привязку к инструментарию GTK и другим библиотекам среды рабочего стола GNOME .
  • Qt Jambi, официальная привязка Java к Qt от Trolltech. Коммерческая поддержка и разработка прекращены [6]

На основе Оbject PascalПравить

  • FireMonkey или FMX — это кроссплатформенный виджет и графическая библиотека, распространяемая с Delphi и C++Builder, начиная с версии XE2 в 2011 году. Он имеет привязки для C++ через C++Builder и поддерживает Windows, macOS, iOS, Android и совсем недавно Linux. FireMonkey поддерживает как собственные виджеты платформы, такие как встроенный элемент управления редактированием, так и пользовательские виджеты, стилизованные под целевую операционную систему. Его графика ускоряется с помощью графического процессора, он поддерживает стили и смешивает собственные элементы управления реализацией с собственными системными элементами управления, что позволяет приложениям использовать собственное поведение там, где это важно (например, для ввода текста IME . )
  • IP Pascal использует графическую библиотеку, построенную поверх стандартных языковых конструкций. Также необычен тем, что это процедурный инструментарий, который является кросс-платформенным (без обратных вызовов или других трюков) и полностью совместим со стандартными парадигмами последовательного ввода и вывода. Полностью стандартные программы с последовательным выводом могут быть запущены и дополнены графическими конструкциями.
  • Lazarus LCL (для Pascal, Object Pascal и Delphi через компилятор Free Pascal ), библиотека классов, обертывающая GTK+ 1.2, Gtk+ 2.x и Windows API (поддержка Carbon, Windows CE и Qt4 находится в разработке).
  • fpGUI создан с помощью компилятора Free Pascal . Он не зависит от каких-либо больших сторонних библиотек и в настоящее время работает на Linux, Windows, Windows CE и Mac (через X11). Портирование Carbon (OS X) находится в разработке.
  • CLX (библиотека компонентов для кроссплатформенности) использовалась с Borland (теперь Embarcadero ) Delphi, C++ Builder и Kylix для создания кроссплатформенных приложений между Windows и Linux. Он был основан на Qt, обернутом таким образом, что его программный интерфейс был похож на интерфейс инструментария VCL . Он больше не поддерживается и не распространяется, и с 2011 года он был заменен FireMonkey, более новым набором инструментов, также поддерживающим больше платформ.

На основе Objective-CПравить

На основе RubyПравить

  • Shoes (GUI toolkit) — это кроссплатформенный фреймворк для разработки графического пользовательского интерфейса.

Еще не классифицированыПравить

Сравнение наборов инструментов для виджетовПравить

Toolkit Initial release Latest release Main language Bindings Tools License Pros Cons Back-end
ATL, WTL 2004 C++ Visual Studio not portable
AWT 1995 Java portable
CEGUI 2004 Шаблон:Latest stable software release/CEGUI C++ Python, Lua (using tolua++) CEED MIT License Free license, fast, cross-platform, portable, free GUI editing tool
Clutter 2006 C Perl, Python, C#, C++, Vala, Ruby LGPL GTK and WebKit embedding
CLX C++
Elementary 2007 (EFL: 2001) 2016 C JavaScript, Python, Vala, C++ editje, edje LGPL Portable, stable, fast, finger-friendly
FLTK 1998 2019 C++ Python (pyFLTK), Perl (FLTK.pm), Ruby (Ruby/FLTK), Tcl (Tcl Fltk), Guile (guile-fltk), Eiffel (IFLTK) FLUID (Fast Light UI Designer) LGPL (with an exception that allows static linking) fast, small enough to static link limited widget selection
Flutter 2017 Dart
FOX 1997 C++ Ruby (FXRuby), Python (FXPy), Eiffel (EiffelFox) consistent across platforms non-native look and feel
Fyne 2018 2020 (1.3.2) Go BSD consistent across platforms, no runtime dependency requires OpenGL
GLUI C++
GNUstep 1994 2017 Objective-C Java, Ruby, Scheme Gorm (computing) GPL for the apps, LGPL for the libs Portable, free license Native on macOS (with Cocoa) X11, Win32, Wayland
GTK 1997 Шаблон:Latest stable software release/GTK+ C C++ (gtkmm), Perl (Gtk2-perl), Ruby (ruby-gtk2), Python (PyGTK), Haskell (Gtk2Hs), Java (java-gnome) (not available for Microsoft Windows), C# (Gtk#), PHP (PHP-GTK), Ada (GTKAda), D (gtkD), FreeBasic (GladeToBac), Go (go-gtk), OCaml (lablgtk), JavaScript (Gjs, Seed (programming)), Fortran (gtk-fortran), Lua (lua-lgi), R (RGtk2) and others via GTK-server Glade LGPL Portable, free license Partly native only.[7]
IUP 1992 2019 C Lua (IupLua) LEDC: a compiler for LED MIT Portable, lightweight, use the native API, native look&feel, free licence Non‑Unicode (only plain ASCII)
Juce 2004 C++ Jucer GPL, commercial Cross-platform, with additional audio plug-in wrapping tools (VST, RTAS, AAX etc.)
MFC, WinAPI 1992 C++ Visual Studio not portable (but Wine implements it for X Window)
Motif, Lesstif 1980s C BX Pro
Nana C++ 2007 Шаблон:LSR[8] C++ VisualStudio, Dev-C++, Code::Blocks, GCC portable, lightweight, modern C++ style
NWSTK 2020 SuperC(C++ Nex)
Qt 1991 Шаблон:Latest stable software release/Qt C++ Ruby (QtRuby), Python (PyQt, PySide, PythonQt), Ada (QtAda), c# ( Qyoto), Java (Qt Jambi), Pascal ( FreePascal Qt4 ), Perl (Perl Qt4), PHP(PHP-Qt), Haskell (Qt Haskell), Lua (lqt, QtLua), Dao ( DaoQt), Tcl ( qtcl ), Common Lisp (CommonQt), D (QtD), Harbour (hbqt) Qt Designer, Qt Creator GPL, LGPL.[9] Portable, rich widget set, GUI builder, free license, stable API Partially native only.[10][11][12]
Rogue Wave Views 1993 2014 (5.8) C++ ivfstudio proprietary portable (Windows, Unix-like), good support commercial
Shoes (GUI toolkit) 2007 2010 Ruby MIT license/Open source Simplicity, ease of use
Swing 1996 Java Eclipse, NetBeans GPL for OpenJDK Portable (Java), advanced widgets, GUI builders
SWT Java D (DWT) Eclipse portable
Tk 1991 2015 C, Tcl Ruby (RubyTk), Python (Tkinter), Perl (Perl/Tk), Ada (TASH), Common Lisp (LTk), Erlang (etk), ... | BSD very portable, many language bindings
Ultimate++ 2004 2022 C++ theIDE BSD portable, NTL, free license
VCF C++ BSD free license
VCL Delphi
Windows Forms CLI languages CLI languages Expression, Visual Studio portability issues, no MVC
WPF, XAML, Silverlight 2007 CLI languages CLI languages Expression, Visual Studio Portability issues
wxWidgets 1992 Шаблон:Latest stable software release/wxWidgets C++ C++ (native), Ruby (wxRuby), Python (wxPython), Perl (wxPerl), Java (wxJava, jwx!), Lua (wxLua), Tcl(wxTCL), JavaScript (GLUEscript), Smalltalk (wxSqueak), Erlang (wxErlang), Haskell (wxHaskell), C (wxC), D (wxD), .NET Framework (wxNet), Common Lisp (wxCL), Basic (wxBasic), BlitzMax (wxMax), Euphoria (wxEuphoria), Ada (wxAda), Pike (wxPike) VisualWx, Boa Constructor, PythonCard, Spe, XRCed, wxGlade, wxFormBuilder, DialogBlocks ($), wxDesigner ($) wxWindows License Portable, rich widget set, free licence, semantic similarities to MFC make migration easy.
Xaw, Athena 1983 1.0.13[13] C MIT X11
XUL XML, JavaScript portable
XVT 1989 2010 C and C++ Design for C and architect for C++ Proprietary Cross-platform, rich widget set, C and C++ GUI builders, very stable
Toolkit Initial release Latest release Main language Bindings Tools License Pros Cons Back-end
  • Список платформо-независимых библиотек графического интерфейса

СсылкиПравить

  1. Microsoft: MS Windows NT Kernel-mode User  (неопр.). Дата обращения: 27 мая 2022. Архивировано 9 марта 2012 года.
  2. Techworld: Microsoft to move graphics outside OS kernel  (неопр.). Дата обращения: 27 мая 2022. Архивировано из оригинала 12 мая 2013 года.
  3. admin. Candera CGI Studio - the Powerful Design Tool for your Embedded HMI (англ.). CGI Studio. Дата обращения: 16 мая 2022. Архивировано 16 мая 2022 года.
  4. Teixera, Pacheco, Steve, Xavier. Borland Delphi 6 Developer's Guide. — Sams Publishing, 2001. — P. 382. — ISBN 0-672-32115-7.
  5. This version provides the core API of the .NET Framework 2.0, but its implementation of this API is still incomplete.
  6. Qt Software to discontinue Qt Jambi after 4.5 release Архивировано 26 июля 2009 года.
  7. Migrating to client-side windows Архивировано 27 апреля 2011 года.: "GDK looks for the GDK_NATIVE_WINDOWS environment variable and makes all windows native if it is set. It also tries to be more compatible with the way prior versions worked in some other ways."
  8. Nana C++ Library - a modern C++ GUI library  (неопр.). Дата обращения: 27 мая 2022. Архивировано 5 мая 2022 года.
  9. Nyström. Nokia to license Qt under LGPL  (неопр.) (14 января 2009). Архивировано 11 ноября 2013 года.
  10. WxWidgets Compared To Other Toolkits Архивная копия от 2 мая 2022 на Wayback Machine: "Qt doesn't have true native ports like wxWidgets does. Qt does not use system provided widgets, but emulates it with themes. What we mean by this is that even though Qt draws them quite realistically, Qt draws its own widgets on each platform."
  11. Qt Modular Class Library  (неопр.). Digia. — «Qt uses the native graphics APIs of each platform it supports, taking full advantage of system resources and ensuring that applications have native look and feel.». Архивировано 1 ноября 2013 года.
  12. The Qt 4 Style API  (неопр.). The Qt Company. — «Qt's built-in widgets use [QStyle] to perform nearly all of their drawing, ensuring that they look exactly like the equivalent native widgets.». Дата обращения: 27 мая 2022. Архивировано 20 августа 2017 года.
  13. Источник  (неопр.). Список рассылки (30 апреля 2015). Дата обращения: 27 мая 2022.

Внешние ссылкиПравить