Список наборов инструментов для виджетов - 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]
Наборы инструментов для виджетов высокого уровня
Зависит от ОС
На Amiga
- BOOPSI (Базовая система объектно-ориентированного программирования для интуиции) была представлена в ОС 2.0 и расширена с помощью системы классов, в которой каждый класс представляет отдельный виджет или описывает событие интерфейса. Это привело к эволюции, в ходе которой сторонние разработчики реализовали свои собственные системы классов.
- MUI: объектно-ориентированный инструментарий графического интерфейса и официальный инструментарий для MorphOS.
- ReAction: объектно-ориентированный инструментарий графического интерфейса и официальный инструментарий для AmigaOS.
- Zune (инструментарий GUI) это клон MUI с открытым исходным кодом и официальный набор инструментов для AROS.
На Macintosh
- Какао - используется в OS X (смотрите также Аква ).
- MacApp Фреймворк Macintosh.
- Электростанция Фреймворк 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.
- LessTif, Открытый исходный код (LGPL ) версия Motif.
- Муолит, мост между дизайном OPEN LOOK и Motif
- Мотив используется в Общая среда рабочего стола.
- OLIT, основанный на Xt ОТКРЫТЬ СМОТРЕТЬ набор встроенных инструментов
- Xaw, то Проект Афина набор виджетов для X Window System.
- XView, а SunView совместимый набор инструментов OPEN LOOK
Кроссплатформенность
На основе C (включая привязки на другие языки)
- Элементарный, Открытый исходный код (LGPL ), часть Библиотеки Фонда Просвещения, быстрая, стабильная и масштабируемая библиотека, которую можно использовать для создания как многофункциональных, так и быстрых приложений, которые можно использовать на чем угодно, от повседневных настольных компьютеров до небольших КПК и телевизионных приставок.
- GTK +, Открытый исходный код (LGPL ), в первую очередь для X Window System, портированной на другие платформы и эмулированной под ними; используется в ГНОМ, Rox, LXDE и Xfce окружения рабочего стола. Порт Windows поддерживает собственные виджеты.
- IUP, Открытый исходный код (Массачусетский технологический институт ), минималистичный набор инструментов с графическим интерфейсом на ANSI C для Windows, UNIX и Linux.
- Тк, Открытый исходный код (В стиле BSD), набор виджетов, доступ к которому осуществляется из Tcl и другие языки сценариев высокого уровня (с интерфейсом Python так как Ткинтер ).
- XForms, Библиотека форм для Икс
- XVT, Расширяемый виртуальный инструментарий
На основе C ++ (включая привязки на другие языки)
- CEGUI, Открытый исходный код (Лицензия MIT ), кроссплатформенный инструментарий виджетов, разработанный для игра разработка, но также можно использовать для разработки приложений и инструментов. Поддерживает несколько рендереров и дополнительных библиотек.
- ФЛТК, Открытый исходный код (LGPL ), кроссплатформенный инструментарий, разработанный, чтобы быть маленьким и быстрым.
- Набор инструментов FOX, Открытый исходный код (LGPL ), кроссплатформенный инструментарий.
- GLUI, очень небольшой набор инструментов, написанный на GLUT библиотека.
- gtkmm, Версия GTK + для C ++
- Juce предоставляет графический интерфейс и набор виджетов с одинаковым внешним видом в Microsoft Windows, X Window Systems, OS X и Android. Рендеринг может быть основан на OpenGL.
- Нана C ++, Открытый исходный код (Лицензия Boost), кроссплатформенный инструментарий, предназначенный для программирования современного графического интерфейса C ++.
- Qt, проприетарный и Открытый исходный код (GPL, LGPL ) доступны под Unix и Linux (с X11 или Wayland), MS Windows (Desktop, CE и Phone 8), OS X, iOS, Android, BlackBerry 10 и встроенным Linux; используется в KDE, Троица, LXQt, и Люмина окружение рабочего стола, оно также используется в Ubuntu Единство ракушка.
- Разбойная волна Просмотры (ранее ILOG Views) предоставляет графический интерфейс и графическую библиотеку для Windows и основных платформ X11.
- TnFOX, Открытый исходный код (LGPL ), инструментарий переносимости.
- Окончательный ++ это бесплатный Win32 /X11 фреймворк приложения в комплекте с IDE (Лицензия BSD )
- В Каркас визуальных компонентов (VCF) - это Открытый исходный код (Лицензия BSD ) Фреймворк C ++.
- wxWidgets (ранее wxWindows), Открытый исходный код (расслабленный LGPL ), абстрагирует наборы инструментов на нескольких платформах для C ++, Python, Perl, Рубин и Haskell.
- Рамка для применения цинка, кроссплатформенный инструментарий виджетов.
На основе OpenGL
- Беспорядок (LGPL) (на языке C) - это программная библиотека с открытым исходным кодом для создания быстрых, визуально насыщенных и анимированных графических пользовательских интерфейсов.
На основе Вспышка
- Adobe Flash позволяет создавать виджеты, работающие в большинстве веб-браузеров и на нескольких мобильных телефонах.
- Adobe Flex предоставляет виджеты высокого уровня для создания пользовательских веб-интерфейсов. В Flex можно использовать виджеты Flash.
- Виджеты Flash и Flex будут работать без веб-браузера в Adobe AIR среда выполнения.
На основе Идти
- Файн, Открытый исходный код (BSD ) основан на принципах материального дизайна для создания приложений, которые выглядят и ведут себя одинаково в Windows, macOS, Linux, BSD, Android и iOS.
На основе XML
- GladeXML с GTK +
- XAML с Silverlight или же Лунный свет
- XUL
На основе JavaScript
Общий
- Капучино
- jQuery UI
- MooTools
- Qooxdoo Может пониматься как Qt для Интернета
- Script.aculo.us
Фреймворк полного стека
- Эхо3
- SproutCore
- Пользовательский интерфейс Telerik для ASP / PHP / JSP / Silverlight
- Ваадин - Ява
- ZK - Веб-платформа Java для создания многофункциональных Ajax и мобильных приложений.
На основе ресурсов
- Google Web Toolkit (GWT)
- Pyjs
- FBML Язык разметки Facebook
Больше не разрабатывается
- Набор инструментов Rialto
- Юй (Библиотека пользовательского интерфейса Yahoo!)
На основе 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 'снег Embarcadero s) Delphi, C ++ Builder, и Kylix, для создания кроссплатформенных приложений между Windows и Linux. Это было основано на Qt, завернутый таким образом, чтобы его программный интерфейс был похож на интерфейс VCL Инструментарий. Он больше не поддерживается и не распространяется, и был заменен на FireMonkey, новый инструментарий, который также поддерживает больше платформ с 2011 года.
На основе Цель-C
На основе Рубин
- Обувь (набор инструментов GUI) это кроссплатформенный фреймворк для разработки графического пользовательского интерфейса.
Еще не классифицировано
Сравнение наборов инструментов виджетов
Инструментарий | изначальный выпуск | Последний релиз | Главный язык | Привязки | Инструменты | Лицензия | Плюсы | Минусы | Бэкэнд |
---|---|---|---|---|---|---|---|---|---|
ATL, WTL | 2004 | C ++ | Visual Studio | не портативный | |||||
AWT | 1995 | Ява | портативный | ||||||
CEGUI | 2004 | 0.8.7 (28 апреля 2016 г.[±][6] | )C ++ | Python,[7] Lua (с использованием tolua ++)[8] | CEED[9] | Лицензия MIT | Бесплатная лицензия, быстрый, кроссплатформенный, портативный, бесплатный инструмент для редактирования графического интерфейса. | ||
Беспорядок | 2006 | C | Perl, Python, C #, C ++, Vala, Ruby | LGPL | GTK + и WebKit встраивание | ||||
CLX | C ++ | ||||||||
Элементарный | 2007 (EFL: 2001) | 2016 | C | JavaScript, Python, Vala, C ++ | editje, edje | LGPL | Портативный, стабильный, быстрый, удобный для пальцев | ||
ФЛТК | 1998 | 2019 | C ++ | Python (pyFLTK ), Perl (FLTK.pm ), Рубин (Рубин / ФЛТК ), Tcl (Tcl Fltk ), Коварство (хитрость ), Эйфелева (IFLTK ) | FLUID (дизайнер пользовательского интерфейса Fast Light) | LGPL (за исключением, которое позволяет статическое связывание ) | быстрый, достаточно маленький, чтобы статическая ссылка | ограниченный выбор виджетов | |
Флаттер | 2017 | Дротик | |||||||
ЛИСА | 1997 | C ++ | Рубин (FXRuby ), Python (FXPy ), Эйфелева (EiffelFox ) | единообразно на разных платформах | неродной внешний вид | ||||
Файн | 2018 | 2020 (1.3.2) | Идти | BSD | согласован на разных платформах, нет зависимости от времени выполнения | требуется OpenGL | |||
GLUI | C ++ | ||||||||
GNUstep | 1994 | 2017 | Цель-C | Java, Ruby, Схема | Горм (вычисления) | GPL для приложений, LGPL для библиотек | Портативная, бесплатная лицензия | Родной на macOS (с какао) | X11, Win32, Wayland |
GTK + | 1997 | 3.24.4[10] (21 января 2019 г. ) [±] | C | C ++ (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] | |
IUP | 1992 | 2019[13] | C | Lua (IupLua )[14] | LEDC: компилятор для ВЕЛ | Массачусетский технологический институт | Портативный, легкий, используйте родной API, собственный внешний вид, бесплатная лицензия | Не-Unicode (только простой ASCII)[15] | |
Juce | 2004 | C ++ | Jucer | GPL, коммерческий | Кроссплатформенность, с дополнительными инструментами упаковки аудио плагинов (VST, RTAS, AAX так далее.) | ||||
MFC, WinAPI | 1992 | C ++ | Visual Studio | не портативный (но Вино реализует это для X Window ) | |||||
Мотив, Лессиф | 1980-е | C | BX Pro | ||||||
Нана C ++ | 2007 | 1.2.2 (8 декабря 2015 г.[±][16] | )C ++ | VisualStudio, Dev-C ++, Code :: Blocks, GCC | портативный, легкий, современный стиль C ++ | ||||
Qt | 1991 | 5.15.2[17] (20 ноября 2020 г. ) [±] | 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 Creator | GPL, LGPL.[18] | Портативный, богатый набор виджетов, конструктор графического интерфейса, бесплатная лицензия, стабильная версия API | Только частично родной.[19][20][21] | |
Разбойная волна Взгляды | 1993 | 2014 (5.8) | C ++ | ivfstudio | проприетарный | портативный (Windows, Unix-like), хорошая поддержка | коммерческий | ||
Обувь (набор инструментов GUI) | 2007 | 2010 | Рубин | Лицензия MIT / Открытый исходный код | Простота, удобство использования | ||||
Качать | 1996 | Ява | Eclipse, NetBeans | GPL за OpenJDK | Портативный (Java), расширенные виджеты, конструкторы графического интерфейса | ||||
SWT | Ява | D (DWT ) | Затмение | портативный | |||||
Тк | 1991 | 2015 | C, Tcl | Рубин (RubyTk ), Python (Ткинтер ), Perl (Perl / Tk ), Ада (ТАШ ), Common Lisp (LTk ), Эрланг (etk ), ... | | BSD | очень портативный, много языковых привязок | |||
Окончательный ++ | 2004 | 2020 | C ++ | TheIDE | BSD | портативный, NTL, бесплатная лицензия | |||
VCF | C ++ | BSD | бесплатная лицензия | ||||||
VCL | Delphi | ||||||||
Windows Forms | Языки интерфейса командной строки | Языки интерфейса командной строки | Выражение, Visual Studio | проблемы с переносимостью, нет MVC | |||||
WPF, XAML, Silverlight | 2007 | Языки интерфейса командной строки | Языки интерфейса командной строки | Выражение, Visual Studio | Проблемы с переносимостью | ||||
wxWidgets | 1992 | 3.0.5 (27 апреля 2020 г.[±][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, Афина | 1983 | 1.0.13[23] | C | MIT X11 | |||||
XUL | XML, JavaScript | портативный | |||||||
XVT | 1989 | 2010 | C и C ++ | Дизайн для C и архитектор для C ++ | Проприетарный | Кроссплатформенность, богатый набор виджетов, конструкторы графического интерфейса на C и C ++, очень стабильная | |||
Инструментарий | изначальный выпуск | Последний релиз | Главный язык | Привязки | Инструменты | Лицензия | Плюсы | Минусы | Бэкэнд |
Смотрите также
Рекомендации
- ^ Microsoft: Пользователь MS Windows NT в режиме ядра
- ^ Techworld: Microsoft переместит графику за пределы ядра ОС
- ^ Тейксера, Пачеко, Стив, Ксавьер (2001). Руководство разработчика Borland Delphi 6. Самс Паблишинг. п. 382. ISBN 0-672-32115-7.
- ^ Эта версия предоставляет ядро API из .NET Framework 2.0, но реализация этого API еще не завершена.
- ^ Qt Software прекратит поддержку Qt Jambi после выпуска 4.5 В архиве 26 июля 2009 г. Wayback Machine
- ^ http://cegui.org.uk/download/cegui-087
- ^ http://cegui.org.uk/wiki/PyCEGUI
- ^ http://cegui.org.uk/wiki/Exnding_your_Lua_Interface
- ^ http://cegui.org.uk/wiki/CEED
- ^ https://github.com/GNOME/gtk/releases/tag/3.24.4
- ^ Переход на клиентские окна В архиве 27 апреля 2011 г. Wayback Machine: "GDK ищет переменную среды GDK_NATIVE_WINDOWS и делает все окна родными, если она установлена. Он также пытается быть более совместимым с тем, как предыдущие версии работали другими способами."
- ^ Ужас программирования: отстойный пользовательский интерфейс: "[…] Имеет межплатформенный интерфейс на основе GTK, который дает предсказуемо мягкие результаты с наименьшим общим знаменателем:"
- ^ https://sourceforge.net/projects/iup/files/3.28/
- ^ http://www.tecgraf.puc-rio.br/iup/
- ^ Сравнение IUP с другими инструментами интерфейса: "[…] Он не поддерживает символы Unicode."
- ^ http://www.nanapro.org/en-us/
- ^ Турунен, Туукка (20 ноября 2020 г.). "Выпущен Qt 5.15.2". Блог Qt. Компания Qt. Получено 20 ноября 2020.
- ^ Нистрем, Себастьян (14 января 2009 г.). "Nokia лицензирует Qt под LGPL". Архивировано из оригинал 11 ноября 2013 г.
- ^ WxWidgets по сравнению с другими наборами инструментов: "Qt не имеет настоящих собственных портов, как у wxWidgets. Qt не использует предоставляемые системой виджеты, а имитирует их с помощью тем. Мы имеем в виду, что, хотя Qt рисует их вполне реалистично, Qt рисует свои собственные виджеты на каждом Платформа."
- ^ "Библиотека модульных классов Qt". Digia. Архивировано из оригинал 1 ноября 2013 г.
Qt использует собственные графические API-интерфейсы каждой поддерживаемой платформы, в полной мере используя системные ресурсы и обеспечивая собственный внешний вид приложений.
- ^ "API стилей Qt 4". Компания Qt.
Встроенные виджеты Qt используют [QStyle] для выполнения почти всего своего рисования, гарантируя, что они выглядят точно так же, как эквивалентные собственные виджеты.
- ^ "wxWidgets: кроссплатформенная библиотека графического интерфейса". 10 декабря 2018 г.. Получено 31 января 2019.
- ^ Алан Куперсмит (30 апреля 2015 г.). "[ОБЪЯВЛЕНИЕ] libXaw 1.0.13". [email protected] (Список рассылки). Получено 1 июля 2020.
внешняя ссылка
- Набор инструментов GUI, страница Framework, сравнивая некоторые из современных графических интерфейсов.
- Обзор наборов виджетов (для системы X Window) (Эдвард Фальк)
- Наборы инструментов GUI для системы X Window (Лесли Ползер, freshmeat.net, 27 июля 2003 г.)
- Обзор библиотек графического интерфейса Microsoft Windows