环境安装
安装Msys2 ,需要里面 MinGw-w64 编译环境和基本的开发工具包
Msys2 官方网站: http://www.msys2.org
一路下一步之后,运行其提供的命令行工具:


安装 MinGW-w64
pacman -S mingw-w64-x86_64-toolchain base-devel

安装GTK 2 ,也可以使用其它版本的,不过好像 golang 的开源库,不支持吧!没试过
pacman -S mingw-w64-x86_64-gtk2

以上安装之后,就要配置环境变量了; 把如下两个路径配置到环境变量【PATH】中
C:\msys64\usr\bin
C:\msys64\mingw64\bin
验证
pkg-config --cflags gtk+-2.0
make -v

安装Golang的GTK支持包
go get github.com/mattn/go-gtk
基础例子:
func main1() {
gtk.Init(&os.Args) // 固定写法,初始化GTK
// 中间为用户代码
win := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
win.SetTitle("Rojers")
win.SetSizeRequest(480, 320)
button := gtk.NewButton()
button.Connect("clicked", func() {
fmt.Println("Button被点击")
})
win.Add(button)
// win.Show() // 只会显示一个控件
win.ShowAll()
// 关闭按钮信号处理
win.Connect("destroy", func() {
gtk.MainQuit()
})
gtk.Main() // 固定写法,后续由 GTK处理
}
编译
go run . 或者 go run main.go
go build . 或者 go build main.go
运行之后 ,会带一个黑色的控制台窗口,
去掉控制台的窗口的命令如下:
go build -ldflags="-H windowsgui" -o window.exe . // 去掉 console 窗口

有关于给exe添加ICO图标的,可以参考文章【Golang 在编译成exe时,添加ico图标】
提示
可以使用 glade 工具来进行可视化的GTK界面布局
在部署的时候,glade 文件要与EXE文件同时分发