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

70 篇文章 1 订阅
5 篇文章 0 订阅

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值