Была выпущена крупная новая версия GTK с улучшенным внутренним дизайном и улучшенным интерфейсом прикладного программирования (API). Добавлена поддержка аппаратного рисования OpenGL и Vulkan для виджетов с целью максимизации производительности при минимизации нагрузки на процессор.
GTK-это набор инструментов для создания графических пользовательских интерфейсов. Предлагая полный набор виджетов, GTK подходит для проектов, начиная от небольших одноразовых инструментов и заканчивая полным набором приложений.
GTK является ядром платформы разработки GNOME, но его также можно использовать для написания приложений для других сред Linux, а также приложений, ориентированных на Microsoft Windows и Apple macOS. Его компактность и модульная конструкция делают его пригодным для использования на устройствах с ограниченными ресурсами, таких как семейство Raspberry Pi.
В новом выпуске улучшены такие области, как контроллеры событий, менеджеры макетов, узлы рендеринга, воспроизведение мультимедиа, масштабируемые списки, шейдеры и доступность.
Некоторые из наиболее очевидных изменений в GTK версии 4 влияют на пользовательские виджеты. Разработчики говорят, что общая тенденция в API заключается в том, что “все является виджетом.” Обработка событий была добавлена в виджеты, переняв сигналы, ранее использовавшиеся для обработки таких событий, как нажатия кнопок и клавиш. Все эти сигналы исчезли в GTK 4, и вместо этого вы должны добавить контроллеры событий в свой виджет и слушать их сигналы.
Способ, которым виджеты обрабатывают рисунок, был обновлен, частично из-за нового таргетинга GL / Vulkan вместо cairo. В рамках этого переключения GTK перешла от модели рендеринга в немедленном режиме к модели рендеринга в сохраненном режиме. GTK 4 также упростил для приложений GTK отображение анимации, будь то программная анимация, файл webm или прямая трансляция.
Также была добавлена поддержка менеджеров макетов. Они оборачивают ваши дочерние виджеты в свои собственные объекты “дочернего макета”, которые могут иметь свойства, влияющие на макет. Ранее, если вы хотели настроить сложный объект, такой как сетка, вам нужно было бы настроить пользовательский виджет, чтобы упорядочить дочерние виджеты по мере необходимости. GTK 4 делает это более удобным с помощью менеджера компоновки. GTK поставляется с рядом предопределенных менеджеров компоновки, таких как GtkBoxLayout, GtkCenterLayout и GtkGridLayout среди других.
Одним из основных улучшений является добавление новых виджетов списка и сетки для обработки масштабируемых списков данных.
В GTK 3 были добавлены контейнеры listbox и floxbox для отображения данных в списках, но они создавали виджет для каждого элемента данных, что затрудняло их использование для крупномасштабных списков.Это было устранено, и заменяющие виджеты должны быть в состоянии хорошо обрабатывать неограниченное количество элементов. Разработчики говорят, что GTK 4 поставляется с богатым ассортиментом реализаций GListModel, от различных способов объединения или изменения существующих моделей до фильтрации и сортировки.
GTK 4 доступен уже сейчас.