Введение

Фреймворк или инструментарий, используемый программой для отображения графического пользовательского интерфейса. Виджет-инструментарий, виджет-библиотека, GUI-инструментарий или UX-библиотека — это библиотека или набор библиотек, содержащий набор графических элементов управления (называемых виджетами), используемых для построения графического пользовательского интерфейса (GUI) программ. Большинство виджет-инструментариев дополнительно включают собственный движок рендеринга. Этот движок может быть специфичен для определенной операционной системы или оконной системы, либо содержать бэкэнды для взаимодействия с несколькими системами, а также с API рендеринга, такими как OpenGL, OpenVG или EGL. Внешний вид графических элементов управления может быть жестко задан или отделен, что позволяет применять темы оформления (скины) к этим элементам.

Обзор

Некоторые наборы инструментов могут использоваться из других языков посредством языковых привязок. Конструкторы графических пользовательских интерфейсов, такие как, например, Glade Interface Designer, облегчают создание графических интерфейсов в режиме WYSIWYG, используя язык разметки пользовательского интерфейса, как в данном случае GtkBuilder. Графический интерфейс программы обычно создается каскадным образом, когда графические элементы управления добавляются непосредственно друг поверх друга. Большинство наборов виджетов используют событийное программирование как модель взаимодействия. Набор инструментов обрабатывает пользовательские события, например, при нажатии пользователем на кнопку. При обнаружении события оно передается приложению для обработки. Конструкция этих наборов инструментов подвергалась критике за продвижение упрощенной модели событийных действий, что приводит к созданию программистами подверженного ошибкам, трудно расширяемого и излишне сложного кода приложений. Конечные автоматы и иерархические автоматы были предложены как высокоуровневые модели для представления интерактивных изменений состояния в реактивных программах.

Оконные системы

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