Golang使用GTK开发桌面应用

环境安装

安装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
直接一路YYYYYYY吧!

以上安装之后,就要配置环境变量了; 把如下两个路径配置到环境变量【PATH】中

C:\msys64\usr\bin
C:\msys64\mingw64\bin

验证

pkg-config --cflags gtk+-2.0
make -v
重新打开一个CMD,执行如下的验证命令,输出如图就表示可以了

安装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文件

有关于给exe添加ICO图标的,可以参考文章【Golang 在编译成exe时,添加ico图标

提示

可以使用 glade 工具来进行可视化的GTK界面布局

在部署的时候,glade 文件要与EXE文件同时分发