Список инструментариев графического интерфейса
Данная статья предоставляет список инструментариев графического интерфейса (также известных как 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 |
- BOOPSI была представлена в OS 2.0 и расширена с помощью системы классов, в которой каждый класс представляет отдельный виджет или описывает событие интерфейса. Это привело к эволюции, в которой сторонние разработчики реализовали свои собственные системы классов.
- MUI : объектно-ориентированный инструментарий и официальный инструментарий для MorphOS .
- ReAction : объектно-ориентированный инструментарий и официальный инструментарий для AmigaOS .
- Zune (инструментарий GUI) — это клон MUI с открытым исходным кодом и официальный инструментарий для AROS .
- Cocoa — используется в OS X (см. также Aqua ) .
- Фреймворк MacApp для Macintosh.
- Фреймворк PowerPlant Macintosh.
- 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.
Обратите внимание, что 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 .
- 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, расширяемый виртуальный инструментарий
- 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, кроссплатформенный набор виджетов.
- Clutter (LGPL) (на C) — это программная библиотека с открытым исходным кодом для создания быстрых, визуально насыщенных и анимированных графических пользовательских интерфейсов.
- Adobe Flash позволяет создавать виджеты, работающие в большинстве веб-браузеров и на нескольких мобильных телефонах.
- Adobe Flex предоставляет виджеты высокого уровня для создания пользовательских веб-интерфейсов. Виджеты Flash можно использовать во Flex.
- Виджеты Flash и Flex будут работать без веб-браузера в среде выполнения Adobe AIR .
- Fyne с открытым исходным кодом ( BSD ) вдохновлен принципами Material Design для создания приложений, которые выглядят и ведут себя одинаково в Windows, macOS, Linux, BSD, Android и iOS.
Общий
- Сappuccino
- jQuery-UI
- MooTools
- Qooxdoo можно понимать как Qt для Интернета
- Script.aculo.us
- Adobe AIR
- Dojo Toolkit
- Sencha (ранее Ext JS)
- Telerik Kendo UI
- Webix
- WinJS
- React
Full-stack framework
- Echo3
- SproutCore
- Telerik UI для ASP/PHP/JSP/Silverlight
- Vaadin - Java
- ZK — веб-фреймворк Java для создания многофункциональных Ajax-приложений и мобильных приложений.
Ресурсные
- Google Web Toolkit (GWT)
- Pyjs
- Язык разметки Facebook FBML
Больше не разрабатываются
- YUI (Yahoo! User Interface Library)
- Raphaël — это набор инструментов JavaScript для интерфейсов и анимации SVG.
- Gtk#, оболочки C# вокруг базовых библиотек GTK и GNOME, написанные на C и доступные в Linux, MacOS и Windows.
- QtSharp, оболочка C# вокруг инструментария виджетов Qt, который сам основан на языке C++ .
- Windows Forms . Существует оригинальная реализация Microsoft, которая представляет собой оболочку API Windows и работает в Windows, и альтернативная реализация Mono, которая является кросс-платформенной.
- Набор инструментов 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]
- 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, более новым набором инструментов, также поддерживающим больше платформ.
- Shoes (GUI toolkit) — это кроссплатформенный фреймворк для разработки графического пользовательского интерфейса.
Еще не классифицированы
- WINGs
- LiveCode
- Wt
- Immediate Mode GUI
Сравнение наборов инструментов для виджетов
| 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 |
- Список платформо-независимых библиотек графического интерфейса
Ссылки
Внешние ссылки
- GUI Toolkit, Framework Page, сравнение некоторых современных графических интерфейсов.
- Обзор наборов виджетов (для системы X Window) (Эдвард Фальк)
- Наборы инструментов GUI для системы X Window (Лесли Полцер, freshmeat.net, 27 июля 2003 г.)
- Обзор библиотек графического интерфейса Microsoft Windows