WikiDer > Список наборов инструментов для виджетов

List of widget toolkits

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

Наборы инструментов для виджетов низкого уровня

Интегрирован в Операционная система

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

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

  • В X Window System содержит примитивные строительные блоки, называемые Xt или "Внутренние", но они в основном используются только старыми инструментами, такими как: OLIT, Мотив и Xaw. Самые современные инструменты, такие как GTK + или же Qt, обойти их и использовать Xlib или же XCB прямо.
  • В Amiga OS Интуиция раньше присутствовал в Амиге Кикстарт ROM и интегрировалась с библиотекой виджетов среднего и высокого уровня, которая вызывала Верстак Родная Amiga GUI. Начиная с Amiga OS 2.0, Intuition.library стала объектно-ориентированной и дисковой. Также Workbench.library и Icon.library стали основаны на дисках, и их можно было заменить аналогичными решениями сторонних производителей.
  • С 2005 года Microsoft убрала графическую систему из ядра Windows.[2]

Наборы инструментов для виджетов высокого уровня

Таблица сравнения наборов инструментов виджетов
Название инструментарияWindowsOS XUnix-подобныйЯзык программированияЛицензия
AWTкросс-платформенныйЯва
CEGUIдададаC ++Массачусетский технологический институт
КакаоНетдаНетЦель-CПроприетарный
ЭлементарныйдададаCLGPL, BSD
ФЛТКдададаC ++LGPL
Набор инструментов FoxдаНетдаC ++LGPL
Файнкросс-платформенныйИдтиBSD
GNUstepдададаЦель-CLGPL
GTKдададаCLGPL
Кивикросс-платформенныйPythonМассачусетский технологический институт
LCLдададаObject Pascal (Free Pascal)LGPL
IUPдаНетдаCМассачусетский технологический институт
JuceдададаC ++GPL, проприетарный
LessTifНетНетдаCLGPL
MFCдаНетНетC ++Проприетарный
Нана C ++даНетдаC ++Способствовать росту лицензия
СОВА (заменено VCL)даНетНетC ++ (Borland C ++)Проприетарный
Разворот (WTK)кросс-платформенныйЯваЛицензия Apache
QtдададаC ++LGPL, проприетарный
Разбойная волна ВзглядыдаНетдаC ++проприетарный
Обувь (набор инструментов GUI)кросс-платформенныйРубинМассачусетский технологический институт
Качатькросс-платформенныйЯва
ТкдададаCBSD
TnFOXдададаC ++LGPL
Окончательный ++дададаC ++BSD
VCL (заменяет OWL)даНетНетObject Pascal (Delphi)Проприетарный
WTLдаНетНетC ++Общественная лицензия Microsoft
wxWidgetsдададаC ++Лицензия WxWindows

Зависит от ОС

На Amiga

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

На Macintosh

На Майкрософт Виндоус

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

На Unixв системе X Window

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

Кроссплатформенность

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

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

На основе OpenGL

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

На основе Вспышка

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

На основе Идти

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

На основе XML

На основе JavaScript

Общий

RIA

Фреймворк полного стека

На основе ресурсов

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

На основе SVG

  • Рафаэль это набор инструментов JavaScript для интерфейсов и анимации SVG

На основе .СЕТЬ

  • Gtk #, Оболочки C # вокруг базового GTK + и ГНОМ библиотеки, написанные на C и доступен в Linux, MacOS и Windows.
  • Windows Forms. Существует оригинальная реализация Microsoft, которая является оболочкой вокруг Windows API и работает в окнах, а у Моно альтернативная реализация это кроссплатформенный.

На основе Ява

  • В Набор инструментов для абстрактного окна (AWT) - это Sun Microsystems'оригинальный инструментарий виджетов для приложений Java. Обычно он использует другой набор инструментов на каждой платформе, на которой работает.
  • Качать поддерживается более богатый инструментарий виджетов, так как J2SE 1.2 в качестве замены виджетов AWT. Swing - это легкий набор инструментов, то есть он не полагается на собственные виджеты.
  • Apache Pivot - это платформа с открытым исходным кодом для создания полнофункциональных веб-приложений на Java или любом JVM-совместимом языке, основанная на наборе инструментов виджетов WTK.
  • JavaFX и FXML.
  • В Стандартный набор инструментов виджетов (SWT) - это набор инструментов для встроенных виджетов для Java, который был разработан как часть Затмение проект. SWT использует стандартный набор инструментов для работающей платформы (например, Windows API, OS X Cocoa или GTK +).
  • java-gnome обеспечивает привязку к GTK инструментарий и другие библиотеки ГНОМ среда рабочего стола
  • Qt Jambi, официальная привязка Java к Qt от Троллтех. Коммерческая поддержка и развитие остановлены[5]

На основе Object Pascal

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

На основе Цель-C

На основе Рубин

Еще не классифицировано

Сравнение наборов инструментов виджетов

Инструментарийизначальный выпускПоследний релизГлавный языкПривязкиИнструментыЛицензияПлюсыМинусыБэкэнд
ATL, WTL2004C ++Visual Studioне портативный
AWT1995Явапортативный
CEGUI20040.8.7 (28 апреля 2016 г.; 4 года назад (2016-04-28)) [±][6]C ++Python,[7] Lua (с использованием tolua ++)[8]CEED[9]Лицензия MITБесплатная лицензия, быстрый, кроссплатформенный, портативный, бесплатный инструмент для редактирования графического интерфейса.
Беспорядок2006CPerl, Python, C #, C ++, Vala, RubyLGPLGTK + и WebKit встраивание
CLXC ++
Элементарный2007 (EFL: 2001)2016CJavaScript, Python, Vala, C ++editje, edjeLGPLПортативный, стабильный, быстрый, удобный для пальцев
ФЛТК19982019C ++Python (pyFLTK), Perl (FLTK.pm), Рубин (Рубин / ФЛТК), Tcl (Tcl Fltk), Коварство (хитрость), Эйфелева (IFLTK)FLUID (дизайнер пользовательского интерфейса Fast Light)LGPL (за исключением, которое позволяет статическое связывание)быстрый, достаточно маленький, чтобы статическая ссылкаограниченный выбор виджетов
Флаттер2017Дротик
ЛИСА1997C ++Рубин (FXRuby), Python (FXPy), Эйфелева (EiffelFox)единообразно на разных платформахнеродной внешний вид
Файн20182020 (1.3.2)ИдтиBSDсогласован на разных платформах, нет зависимости от времени выполнениятребуется OpenGL
GLUIC ++
GNUstep19942017Цель-CJava, Ruby, СхемаГорм (вычисления)GPL для приложений, LGPL для библиотекПортативная, бесплатная лицензияРодной на macOS (с какао)X11, Win32, Wayland
GTK +19973.24.4[10] (21 января 2019 г.; 22 месяца назад (2019-01-21)) [±]CC ++ (gtkmm), Perl (Gtk2-Perl), Рубин (ruby-gtk2), Python (PyGTK), Haskell (Gtk2Hs), Ява (java-gnome) (недоступно для Microsoft Windows), C # (Gtk #), PHP (PHP-GTK), Ада (GTKAda), D (gtkD), FreeBasic (GladeToBac), Идти (Go-GTK), OCaml (lablgtk), JavaScript (Gjs, Seed (программирование)), Фортран (gtk-fortran), Lua (lua-lgi), Р (RGtk2) и другие через GTK-серверПолянаLGPLПортативная, бесплатная лицензияТолько частично родной.[11][12]
IUP19922019[13]CLua (IupLua)[14]LEDC: компилятор для ВЕЛМассачусетский технологический институтПортативный, легкий, используйте родной API, собственный внешний вид, бесплатная лицензияНе-Unicode (только простой ASCII)[15]
Juce2004C ++JucerGPL, коммерческийКроссплатформенность, с дополнительными инструментами упаковки аудио плагинов (VST, RTAS, AAX так далее.)
MFC, WinAPI1992C ++Visual Studioне портативный (но Вино реализует это для X Window)
Мотив, Лессиф1980-еCBX Pro
Нана C ++20071.2.2 (8 декабря 2015 г.; 4 года назад (2015-12-08)) [±][16]C ++VisualStudio, Dev-C ++, Code :: Blocks, GCCпортативный, легкий, современный стиль C ++
Qt19915.15.2[17] (20 ноября 2020 г.; 8 дней назад (2020-11-20)) [±]C ++Рубин (QtRuby), Python (PyQt, PySide, PythonQt), Ада (QtAda), c # ( Qyoto), Ява (Qt Jambi), Паскаль ( FreePascal Qt4 ), Perl (Perl Qt4), PHP (PHP-Qt), Haskell (Qt Haskell), Lua (lqt, QtLua), Дао ( DaoQt), Tcl ( qtcl ), Common Lisp (CommonQt), D (QtD), Гавань (hbqt)Qt Designer, Qt CreatorGPL, LGPL.[18]Портативный, богатый набор виджетов, конструктор графического интерфейса, бесплатная лицензия, стабильная версия APIТолько частично родной.[19][20][21]
Разбойная волна Взгляды19932014 (5.8)C ++ivfstudioпроприетарныйпортативный (Windows, Unix-like), хорошая поддержкакоммерческий
Обувь (набор инструментов GUI)20072010РубинЛицензия MIT / Открытый исходный кодПростота, удобство использования
Качать1996ЯваEclipse, NetBeansGPL за OpenJDKПортативный (Java), расширенные виджеты, конструкторы графического интерфейса
SWTЯваD (DWT)Затмениепортативный
Тк19912015C, TclРубин (RubyTk), Python (Ткинтер), Perl (Perl / Tk), Ада (ТАШ), Common Lisp (LTk), Эрланг (etk), ... |BSDочень портативный, много языковых привязок
Окончательный ++20042020C ++TheIDEBSDпортативный, NTL, бесплатная лицензия
VCFC ++BSDбесплатная лицензия
VCLDelphi
Windows FormsЯзыки интерфейса командной строкиЯзыки интерфейса командной строкиВыражение, Visual Studioпроблемы с переносимостью, нет MVC
WPF, XAML, Silverlight2007Языки интерфейса командной строкиЯзыки интерфейса командной строкиВыражение, Visual StudioПроблемы с переносимостью
wxWidgets19923.0.5 (27 апреля 2020 г.; 7 месяцев назад (2020-04-27)) [±][22]C ++C ++ (собственный), Ruby (wxRuby), Python (wxPython), Perl (wxPerl), Ява (wxJava, jwx!), Lua (wxLua), Tcl (wxTCL), JavaScript (GLUEscript), Болтовня (wxSqueak), Эрланг (wxErlang), Haskell (wxHaskell), C (wxC), D (wxD), .NET Framework (wxNet), Common Lisp (wxCL), Базовый (wxBasic), BlitzMax (wxMax), Эйфория (wxEuphoria), Ада (wxAda), Щука (wxPike)VisualWx, Boa Constructor, PythonCard, Spe, XRCed, wxGlade, wxFormBuilder, DialogBlocks ($), wxDesigner ($)Лицензия wxWindowsПортативный, богатый набор виджетов, бесплатная лицензия, семантическое сходство с MFC упрощают миграцию.
Xaw, Афина19831.0.13[23]CMIT X11
XULXML, JavaScriptпортативный
XVT19892010C и C ++Дизайн для C и архитектор для C ++ПроприетарныйКроссплатформенность, богатый набор виджетов, конструкторы графического интерфейса на C и C ++, очень стабильная
Инструментарийизначальный выпускПоследний релизГлавный языкПривязкиИнструментыЛицензияПлюсыМинусыБэкэнд

Смотрите также

Рекомендации

  1. ^ Microsoft: Пользователь MS Windows NT в режиме ядра
  2. ^ Techworld: Microsoft переместит графику за пределы ядра ОС
  3. ^ Тейксера, Пачеко, Стив, Ксавьер (2001). Руководство разработчика Borland Delphi 6. Самс Паблишинг. п. 382. ISBN 0-672-32115-7.
  4. ^ Эта версия предоставляет ядро API из .NET Framework 2.0, но реализация этого API еще не завершена.
  5. ^ Qt Software прекратит поддержку Qt Jambi после выпуска 4.5 В архиве 26 июля 2009 г. Wayback Machine
  6. ^ http://cegui.org.uk/download/cegui-087
  7. ^ http://cegui.org.uk/wiki/PyCEGUI
  8. ^ http://cegui.org.uk/wiki/Exnding_your_Lua_Interface
  9. ^ http://cegui.org.uk/wiki/CEED
  10. ^ https://github.com/GNOME/gtk/releases/tag/3.24.4
  11. ^ Переход на клиентские окна В архиве 27 апреля 2011 г. Wayback Machine: "GDK ищет переменную среды GDK_NATIVE_WINDOWS и делает все окна родными, если она установлена. Он также пытается быть более совместимым с тем, как предыдущие версии работали другими способами."
  12. ^ Ужас программирования: отстойный пользовательский интерфейс: "[…] Имеет межплатформенный интерфейс на основе GTK, который дает предсказуемо мягкие результаты с наименьшим общим знаменателем:"
  13. ^ https://sourceforge.net/projects/iup/files/3.28/
  14. ^ http://www.tecgraf.puc-rio.br/iup/
  15. ^ Сравнение IUP с другими инструментами интерфейса: "[…] Он не поддерживает символы Unicode."
  16. ^ http://www.nanapro.org/en-us/
  17. ^ Турунен, Туукка (20 ноября 2020 г.). "Выпущен Qt 5.15.2". Блог Qt. Компания Qt. Получено 20 ноября 2020.
  18. ^ Нистрем, Себастьян (14 января 2009 г.). "Nokia лицензирует Qt под LGPL". Архивировано из оригинал 11 ноября 2013 г.
  19. ^ WxWidgets по сравнению с другими наборами инструментов: "Qt не имеет настоящих собственных портов, как у wxWidgets. Qt не использует предоставляемые системой виджеты, а имитирует их с помощью тем. Мы имеем в виду, что, хотя Qt рисует их вполне реалистично, Qt рисует свои собственные виджеты на каждом Платформа."
  20. ^ "Библиотека модульных классов Qt". Digia. Архивировано из оригинал 1 ноября 2013 г. Qt использует собственные графические API-интерфейсы каждой поддерживаемой платформы, в полной мере используя системные ресурсы и обеспечивая собственный внешний вид приложений.
  21. ^ "API стилей Qt 4". Компания Qt. Встроенные виджеты Qt используют [QStyle] для выполнения почти всего своего рисования, гарантируя, что они выглядят точно так же, как эквивалентные собственные виджеты.
  22. ^ "wxWidgets: кроссплатформенная библиотека графического интерфейса". 10 декабря 2018 г.. Получено 31 января 2019.
  23. ^ Алан Куперсмит (30 апреля 2015 г.). "[ОБЪЯВЛЕНИЕ] libXaw 1.0.13". [email protected] (Список рассылки). Получено 1 июля 2020.

внешняя ссылка