目录
1,关于go-gtk
go-gtk 一个gtk2封装的 golang ,需要 libgtk±2.0 库,直接安装就行。
https://github.com/mattn/go-gtk
2,安装
sudo apt-get install libgtk2.0-dev libglib2.0-dev libgtksourceview2.0-dev
go get github.com/mattn/go-gtk/gtk
go get github.com/mattn/go-gtk/go-pointer
然后运行 demo例子:
package main
import (
"fmt"
"github.com/mattn/go-gtk/glib"
"github.com/mattn/go-gtk/gtk"
"os"
)
func main() {
gtk.Init(&os.Args)
window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
window.SetPosition(gtk.WIN_POS_CENTER)
window.SetTitle("GTK Go!")
window.SetIconName("gtk-dialog-info")
window.Connect("destroy", func(ctx *glib.CallbackContext) {
fmt.Println("got destroy!", ctx.Data().(string))
gtk.MainQuit()
}, "foo")
//--------------------------------------------------------
// GtkVBox
vbox := gtk.NewVBox(false, 2)
//--------------------------------------------------------
// button
button := gtk.NewButtonWithLabel("Button with label")
button.Clicked(func() {
fmt.Println("button clicked:", button.GetLabel())
})
vbox.Add(button)
//--------------------------------------------------------
window.Add(vbox)
window.SetSizeRequest(600, 600)
window.ShowAll()
gtk.Main()
}
官方的例子经过删减了下。
创建起来稍微复杂点,创建一个 frame 在通过 vbox 添加一个 button。
在给 button 增加事件就可以了。
3,总结
使用 go-gtk,就是利用 gtk2 进行封装,开发 gui 工具。
在linux 下面 windows ,mac 下面都可以通用使用。同时利用 golang的垃圾回收机制。
不用自己去处理内存的问题。还是非常的方便。就是gtk2的lib库需要熟悉下。
本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/104173764