Набор инструментов виджетов , библиотека виджетов , набор инструментов GUI или библиотека UX — это библиотека или набор библиотек, содержащих набор графических элементов управления (называемых виджетами ), используемых для построения графического пользовательского интерфейса (GUI) программ.
Большинство виджетных наборов инструментов дополнительно включают собственный движок рендеринга . Этот движок может быть специфичным для определенной операционной системы или оконной системы или содержать бэкэнды для взаимодействия с несколькими из них, а также с API рендеринга, такими как OpenGL , OpenVG или EGL . Внешний вид и поведение графических элементов управления могут быть жестко запрограммированы или развязаны, что позволяет тематизировать / обозначать графические элементы управления .
Некоторые наборы инструментов могут быть использованы из других языков с использованием языковых привязок . Графические конструкторы пользовательского интерфейса, такие как Glade Interface Designer, облегчают создание графических интерфейсов в режиме WYSIWYG , используя язык разметки пользовательского интерфейса, такой как в данном случае GtkBuilder .
Графический интерфейс пользователя программы обычно строится каскадным образом, при этом графические элементы управления добавляются непосредственно друг на друга.
Большинство наборов инструментов для виджетов используют событийно-управляемое программирование в качестве модели взаимодействия. [1] Набор инструментов обрабатывает пользовательские события , например, когда пользователь нажимает кнопку . Когда событие обнаружено, оно передается в приложение, где оно обрабатывается. Дизайн этих наборов инструментов подвергался критике за продвижение чрезмерно упрощенной модели событийного действия, что приводило к созданию программистами подверженного ошибкам, труднорасширяемого и чрезмерно сложного кода приложения . [2] Конечные автоматы и иерархические автоматы были предложены в качестве высокоуровневых моделей для представления интерактивных изменений состояния для реактивных программ.
Окно считается элементом графического управления. В некоторых системах управления окнами окна добавляются непосредственно в граф сцены (холст) оконным менеджером и могут быть сложены и наложены друг на друга различными способами. Каждое окно связано с определенным приложением , которое управляет виджетами, добавленными в его холст, которые могут просматриваться и изменяться связанными с ними приложениями.