Вышел публичный инициатива Cambalache 1.0 — средство для разработки GTK-интерфейсов

2 мин
Вышел публичный инициатива Cambalache 1.0 — средство для разработки GTK-интерфейсов

20 марта 2026 года состоялся выпуск открытого проекта Cambalache 1.0. Это средство для быстрой разработки интерфейсов для GTK 3 и GTK 4, использующий визуальное проектирование (WYSIWYG), парадигму MVC и философию первостепенного значения модели данных. Исходный исходник решения написан на Python и опубликован под лицензией LGPLv2.1. Для установки доступен пакет в формате flatpak.

В отличие от проекта Glade в Cambalache предоставляется сопровождение ведения нескольких интерфейсов пользователя в одном проекте.

Решение Cambalache не зависит от GtkBuilder и GObject, но предоставляет модель данных, соответствующую системе типов GObject. Проект поддерживается редактирование, визуализация и создание GTK‑стилей в формате CSS, редактирование XML‑файлов с ресурсами GResources, разработка шаблонов и виджетов, использование XML‑файлов GtkBuilder и разметки Blueprint.

Модель данных в Cambalache может импортировать и экспортировать разом несколько интерфейсов, поддерживает объекты, свойства и сигналы GtkBuilder, предоставляет стек отката операций (Undo / Redo) и функция сжатия истории команд. Для генерации модели данных из gir‑файлов предоставляется утилита cambalache‑db, а для генерации классов GObject из таблиц модели данных — утилита db‑codegen.

Интерфейс в Cambalache может генерироваться на базе GTK 3 и GTK 4, в зависимости от определённой в проекте версии. Для обеспечения поддержки разных веток GTK формирование рабочей области осуществляется в отдельном процессе с привлечением виджета Casilda, позволяющего встраивать в GTK4-приложения окна других процессов и реализованного в форме специализированного композитного сервера, использующего протокол Wayland и библиотеку wlroots. Casilda создаёт виртуальные устройства ввода, события в которые транслируются из GtkEventController, а также виртуальное девайс вывода, имеющее размер как у встроенного в приложение виджета. При помощи wlroots содержимое для предпросмотра отрисовывается в пиксельный буфер и загружается как поверхность Cairo (cairo.Surface) для отрисовки в GTK.

Читают сейчас

Google стартовал менять заголовки в поисковой выдаче на сгенерированные

2 минуты назад

Google стартовал менять заголовки в поисковой выдаче на сгенерированные

Поисковая платформа Google начала заменять оригинальные заголовки новостных статей на варианты, сгенерированные искусственным интеллектом. Ранее подобная практика была внедрена в ленту Google Discover

Маск признан виновным в том, что ввёл инвесторов Twitter в заблуждение своими постами в Twitter

42 минуты назад

Маск признан виновным в том, что ввёл инвесторов Twitter в заблуждение своими постами в Twitter

Жюри присяжных в Сан-Франциско признало, что американский предприниматель Илон Маск вводил в заблуждение инвесторов Twitter (ныне - X) во время переговоров о покупке компании в 2022 году. Об этом гово

Вышла релиз ELKS 0.9 — проекта ядра Linux для устаревших 16-разрядных процессоров Intel

1 час назад

Вышла релиз ELKS 0.9 — проекта ядра Linux для устаревших 16-разрядных процессоров Intel

21 марта 2026 года состоялся релиз ELKS 0.9 (Embeddable Linux Kernel Subset) — открытого проекта ядра Linux для работы на ПК с устаревшими 16-разрядными процессорами Intel. Исходные коды решения распр

К африканскому острову пристали суда с тысячами люксовых авто в связи с кризиса в Ормузском проливе

1 час назад

К африканскому острову пристали суда с тысячами люксовых авто в связи с кризиса в Ормузском проливе

К острову Лама у берегов Кении в Индийском океане пристали суда с тысячами новых люксовых автомобилей. Это произошло из-за проблем с судоходством в Ормузском проливе. При этом на данной территории дей

В Steam одновременно вышли две инди-игры с одинаковым названием

2 часа назад

В Steam одновременно вышли две инди-игры с одинаковым названием

В Steam практически одновременно появилось две никак не связанные друг с другом инди-игры с идентичным названием — Piece by Piece. Одновременно сами разработчики не стали конфликтовать, а решили извле