我的建议(2019-9-29):
我不是很提倡使用这个GUI库了(原因:功能缺陷严重)
因为我发现了一个 功能强大基本上没有缺陷 的GUI库(lxn/walk)
重点:它以 Win32 API 做的,生成的 exe 很轻量级,各种体验都很好
开发前提:
Go:1.8 以上的版本
Windows:Windows Vista SP2 以上的 Windows 系统
Mac OS X:Mac OS X 10.8 以上的 Mac 系统
其他操作系统:GTK+3.10 以上
Debian、Ubuntu 等:sudo apt-get install libgtk-3-dev
Red Hat / Fedora 等:sudo dnf install gtk3-devel
安装:
go get github.com/andlabs/libui
go get github.com/andlabs/ui
代码实例:
package main
import (
"github.com/andlabs/ui"
_ "github.com/andlabs/ui/winmanifest"
)
func main() {
err := ui.Main(func() {
// 生成:文本框
name := ui.NewEntry()
// 生成:标签
greeting := ui.NewLabel(``)
// 生成:按钮
button := ui.NewButton(`欢迎`)
// 设置:按钮点击事件
button.OnClicked(func(*ui.Button) {
greeting.SetText(`你好,` + name.Text() + `!`)
})
// 生成:垂直容器
box := ui.NewVerticalBox()
// 往 垂直容器 中添加 控件
box.Append(ui.NewLabel(`请输入你的名字:`), false)
box.Append(name, false)
box.Append(button, false)
box.Append(greeting, false)
// 生成:窗口(标题,宽度,高度,是否有 菜单 控件)
window := ui.NewWindow(`你好`, 200, 100, false)
// 窗口容器绑定
window.SetChild(box)
// 设置:窗口关闭时
window.OnClosing(func(*ui.Window) bool {
// 窗体关闭
ui.Quit()
return true
})
// 窗体显示
window.Show()
})
if err != nil {
panic(err)
}
}