熟悉的工具链
使用 CGO_ENABLED=0 构建。原生 API 在运行时绑定,构建应用无需 C/C++ 编译器或开发头文件。
复用 Go 工具链,嵌入资源,交付专注于业务的原生应用。GOUI 提供桌面界面需要的能力,不把自己扩展成无所不包的平台 SDK。
使用 CGO_ENABLED=0 构建。原生 API 在运行时绑定,构建应用无需 C/C++ 编译器或开发头文件。
Windows 和 Linux 可以直接运行单个可执行文件;macOS 可以包装为 .app,承载应用身份、图标和签名。运行时仍需原生系统库。
亮暗样式和主题色,配合原生窗口、文字排版、输入法、剪贴板和文件对话框。声明式 View 和命令式 Widget 按需选择。
package main
import "github.com/golang-gui/goui/ui"
func main() {
ui.Run("org.golang-gui.hello", func(app ui.App) ui.RootView {
return ui.Window("main").
Title("Hello World").
Content(ui.Label("Hello GOUI!"))
})
}
GOUI 提供官方 Skill 供编码助手安装,把运行中的窗口发布为纯文本模型可读的语义快照,并可通过可选的本地自动化协议接收真实输入。
请按照 https://github.com/golang-gui/goui/blob/main/skills/INSTALL.md 的说明,安装 GOUI 应用开发 Skill。
官方 goui-app 技能遵循 Agent Skills 格式:向编码工具发送一条安装指令,即可获得 GOUI 应用开发指引。工具是否加载 Skill,由工具自身决定。 安装说明
每个窗口都发布语义快照——角色、文本、边界、焦点、支持的操作——以纯文本模型可读的 JSON 呈现,理解界面不依赖视觉能力。 在 Demo 中查看
可选的本地 gui/dev 服务让智能体读取快照、分发指针与按键事件、按正常输入路径提交文本。它需要显式 import 和 GOUI_DEV_ADDR 才会启用,不会进入发布二进制。 协议说明
Demo 集中展示文本编辑、数据视图、可拖出标签、覆盖层、绘图和系统集成。v0.4.0 增加菜单按钮组、工具提示和大文本样本,可以切换亮暗模式、主题色和八种界面语言。
x64 · EXE
9.50 MiB 已发布资源大小
下载 DemoApple Silicon · .app ZIP
3.33 MiB 已发布资源大小
下载 Demox64 · X11
9.34 MiB 已发布资源大小
下载 DemoLinux:先用 chmod +x 为文件增加执行权限。macOS:解压 ZIP 后打开 GOUI Demo.app;该应用已完成 Developer ID 签名与 Apple 公证。ZIP 大小不等于可执行文件大小。
GOUI 提供小型桌面应用所需的基础机制和控件,从实用工具、便签应用,到以数据为中心的工作区。
按钮、标签、图标、菜单与菜单按钮组、工具提示、下拉列表、复选与单选、开关,以及长条形和圆形进度指示。
Unicode 文本编辑、中日韩输入法、选区、撤销重做、剪贴板、快捷键和 Tab 焦点导航;长段落采用有界原生排版窗口。
约束布局、线性与换行容器、滚动、覆盖层、分割视图、虚拟列表、树,以及支持自定义单元格的表格。
标签排序、跨窗口转移、拖出新建窗口,以及原生应用内和跨应用拖放。
跟随样式的 SVG 图标、亮暗模式、主题色、HiDPI、透明、阴影,以及帧驱动动画。
文件对话框、文件访问凭据、计时器、系统设置、链接与文件打开、构建工具,以及可选的语义界面检查。
吸取 GTK4、Flutter、Qt、Avalonia 和 SwiftUI 的经验,再按 Go 的方式组织,而不是照搬。
no-cgo 描述构建方式,不意味着程序没有运行时依赖。
Windows x64 · Win32 窗口 · DirectWrite 排版 · Direct2D、OpenGL 或 Software 绘制。
macOS Apple Silicon · AppKit 窗口 · Core Text 排版 · OpenGL 或 Software 绘制。签名与公证仍属于应用分发步骤。
Linux x64 · X11 · Pango/Cairo 排版 · OpenGL 或 Software 绘制。需要 X11、GL、GLib、Fontconfig、Pango/Cairo 和 GTK 运行库;Wayland 会话需 XWayland,并在目标桌面验证具体行为。
v0.4.0 的公共 API 仍在演进。后续继续推进触摸、更多平台与窗口系统、用途控件,以及有实测依据的性能优化。
不是。GOUI 通过原生绘图后端绘制控件,并使用原生文字排版,不嵌入浏览器引擎。
构建应用不需要 C/C++ 编译器。GOUI 支持 CGO_ENABLED=0,在运行时绑定原生库;运行库要求仍然存在。
支持的目标可以用 Go 工具链无 cgo 构建。打包、签名和真机验证是独立步骤;编译通过不代表原生行为已经验证。
还没有。当前版本用于开发应用并获得实践反馈,公共 API 会继续演进。建议固定版本,升级时查看变更。
可以,三部分配合:安装官方 goui-app Skill 获得开发指引;以纯文本读取语义快照了解界面状态;可选启用本地 gui/dev 服务,通过快照、事件和文本接口走真实输入分发完成操作。自动化只存在于开发构建,不会随应用发布。
从一个小窗口开始,再使用应用真正需要的层和控件。