go-gtk 研究,在 linux 下面使用 golang 做 gui 开发。 - Go语言中文社区

go-gtk 研究,在 linux 下面使用 golang 做 gui 开发。


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

博主地址是:https://blog.csdn.net/freewebsys

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/freewebsys/article/details/104173764
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 20:13:51
  • 阅读 ( 1880 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢