Инструментарий для создания графических интерфейсов пользователя
Widget toolkit
Библиотеки GUI: виджеты, тулкиты и UX-библиотеки для создания графических интерфейсов. Рендеринг, темы оформления, кроссплатформенность и языковые привязки.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Фреймворк или инструментарий, используемый программой для отображения графического пользовательского интерфейса. Виджет-инструментарий, виджет-библиотека, GUI-инструментарий или UX-библиотека — это библиотека или набор библиотек, содержащий набор графических элементов управления (называемых виджетами), используемых для построения графического пользовательского интерфейса (GUI) программ. Большинство виджет-инструментариев дополнительно включают собственный движок рендеринга. Этот движок может быть специфичен для определенной операционной системы или оконной системы, либо содержать бэкэнды для взаимодействия с несколькими системами, а также с API рендеринга, такими как OpenGL, OpenVG или EGL. Внешний вид графических элементов управления может быть жестко задан или отделен, что позволяет применять темы оформления (скины) к этим элементам.
Framework or toolkit a program uses to display the graphical user interface
A widget toolkit, widget library, GUI toolkit, or UX library is a library or a collection of libraries containing a set of graphical control elements (called widgets) used to construct the graphical user interface (GUI) of programs. Most widget toolkits additionally include their own rendering engine. This engine can be specific to a certain operating system or windowing system or contain back ends to interface with multiple ones and also with rendering APIs such as OpenGL, OpenVG, or EGL. The look and feel of the graphical control elements can be hard coded or decoupled, allowing the graphical control elements to be themed/skinned.
Обзор
Некоторые наборы инструментов могут использоваться из других языков посредством языковых привязок. Конструкторы графических пользовательских интерфейсов, такие как, например, Glade Interface Designer, облегчают создание графических интерфейсов в режиме WYSIWYG, используя язык разметки пользовательского интерфейса, как в данном случае GtkBuilder. Графический интерфейс программы обычно создается каскадным образом, когда графические элементы управления добавляются непосредственно друг поверх друга. Большинство наборов виджетов используют событийное программирование как модель взаимодействия. Набор инструментов обрабатывает пользовательские события, например, при нажатии пользователем на кнопку. При обнаружении события оно передается приложению для обработки. Конструкция этих наборов инструментов подвергалась критике за продвижение упрощенной модели событийных действий, что приводит к созданию программистами подверженного ошибкам, трудно расширяемого и излишне сложного кода приложений. Конечные автоматы и иерархические автоматы были предложены как высокоуровневые модели для представления интерактивных изменений состояния в реактивных программах.
Some toolkits may be used from other languages by employing language bindings. Graphical user interface builders such as e. g. Glade Interface Designer facilitate the authoring of GUIs in a WYSIWYG manner employing a user interface markup language such as in this case GtkBuilder. The GUI of a program is commonly constructed in a cascading manner, with graphical control elements being added directly to on top of one another. Most widget toolkits use event driven programming as a model for interaction. The toolkit handles user events, for example when the user clicks on a button. When an event is detected, it is passed on to the application where it is dealt with. The design of those toolkits has been criticized for promoting an oversimplified model of event action, leading programmers to create error prone, difficult to extend and excessively complex application code. Finite state machines and hierarchical state machines have been proposed as high level models to represent the interactive state changes for reactive programs.
Оконные системы
Окно рассматривается как графический элемент управления. В некоторых оконных системах окна добавляются непосредственно в граф сцены (холст) менеджером окон и могут быть наложены друг на друга различными способами. Каждое окно связано с определенным приложением, которое управляет виджетами, добавленными на его холст, за которыми могут наблюдать и которые могут изменять связанные с ними приложения.
A window is considered to be a graphical control element. In some windowing systems, windows are added directly to the scene graph (canvas) by the window manager, and can be stacked and layered on top of each other through various means. Each window is associated with a particular application which controls the widgets added to its canvas, which can be watched and modified by their associated applications.