# Cambalache 1.0:GTK 3 和 GTK 4 界面的可视化编辑器
2026 年 3 月 20 日,Cambalache 1.0 正式发布——一款用于可视化设计 GTK 3 和 GTK 4 界面的开源工具。该项目采用 WYSIWYG 方式,基于数据驱动的 MVC 模型。用 Python 编写,采用 LGPLv2.1 许可,可通过 Flatpak 安装。与 Glade 不同,它支持在单个项目中处理多个 UI,而无需依赖 GtkBuilder 或 GObject,但完全兼容 GObject 类型。
Cambalache 可编辑 GTK CSS 样式、GResources XML、小部件模板、GtkBuilder XML 和 Blueprint。数据模型支持导入/导出多个界面、管理对象、属性和信号。它具备带有历史压缩的 Undo/Redo 栈。cambalache-db 实用工具从 GIR 文件生成模型,而 db-codegen 从模型表生成 GObject 类。
在统一环境中支持 GTK 3 和 GTK 4
该项目根据设置中选择的版本生成 GTK 3 或 GTK 4 界面。为了实现跨版本兼容,工作区使用 Casilda 小部件在隔离进程中运行。Casilda 是一个基于 Wayland 和 wlroots 的合成器服务器,可将其他进程的窗口嵌入到 GTK 4 应用程序中。
Casilda 创建虚拟输入设备:来自 GtkEventController 的事件会被转发给它们。虚拟输出设备的大小与宿主小部件匹配。预览内容渲染到 wlroots 像素缓冲区,并加载为 cairo.Surface 以在 GTK 中绘制。
- 数据模型的关键特性:
- 同时导入/导出多个界面
- 完全支持 GtkBuilder 对象、属性、信号
- 带有命令历史压缩的 Undo/Redo
- 从 GIR 生成并输出到 GObject 类
工具和工作流程
Cambalache 简化了工作流程:可视化编辑 CSS 样式、GResources 和自定义模板。支持 Blueprint 声明式 UI。不依赖 GtkBuilder——数据模型是自包含的,并与 GObject 反射保持一致。
对于资深开发者:Casilda 解决了嵌入问题,避免工具包版本冲突。Wayland 协议确保隔离,wlroots 处理渲染。即使复杂布局,预览也能稳定运行。
安装:flatpak install cambalache。启动后,创建项目并选择 GTK 版本;模型将自动从 GIR 生成。
关键要点
- Cambalache 1.0 是首个稳定版本,完全支持 GTK 3/4,并在每个项目中支持多个 UI。
- Casilda 通过 Wayland/wlroots 实现预览,而无需宿主依赖。
- 实用工具 cambalache-db 和 db-codegen 自动化模型和代码生成。
- LGPLv2.1 许可,通过 Flatpak 轻松安装。
- 聚焦数据模型:无需构建器依赖的 MVC。
— Editorial Team
暂无评论。