gtk 给按钮添加事件
来源:原创
时间:2019-11-13
作者:脚本小站
分类:GoLang
package main import ( "fmt" "os" "github.com/mattn/go-gtk/glib" "github.com/mattn/go-gtk/gtk" ) func HandleSignal(ctx *glib.CallbackContext) { arg := ctx.Data() data, isok := arg.(string) if isok { fmt.Printf("%s\n", data) } } func main() { // 初始化环境 gtk.Init(&os.Args) win := gtk.NewWindow(gtk.WINDOW_TOPLEVEL) win.SetTitle("排盘工具") win.SetSizeRequest(800, 600) layout := gtk.NewFixed() win.Add(layout) b1 := gtk.NewButtonWithLabel("button1") b1.SetSizeRequest(100, 30) b2 := gtk.NewButtonWithLabel("button2") b2.SetSizeRequest(100, 30) layout.Put(b1, 0, 0) layout.Put(b2, 100, 0) win.ShowAll() // 事件 str1 := "button1" b1.Connect("clicked", HandleSignal, str1) // 给函数传参 // 匿名函数方式 str2 := "botton2" b2.Connect("clicked", func() { fmt.Println(str2) // 直接捕获外部变量 }) // 主事件循环 gtk.Main() }