前言
The gotk3 project provides Go bindings for GTK 3 and dependent projects.(Github)
下载依赖
下载GTK
MacOS
下载GoGTK
1
| go get github.com/gotk3/gotk3/gtk
|
初始化
窗体的操作
创建窗体
1
| window, _ := gtk.WindowNew(gtk.WINDOW_TOPLEVEL)
|
设置窗体尺寸
1
| window.SetSizeRequest(<width>, <height>)
|
设置窗体尺寸固定
1
| window.SetResizable(false)
|
设置窗体标题
设置窗体图标
1
| window.SetIconFromFile("<file>")
|
获取窗体尺寸
1 2
| var width, height int window.GetSize(&width, &height)
|
显示窗体
显示窗体和所有其他组件
设置事件
关闭窗体事件
1 2 3
| window.Connect("destroy", func() { gtk.MainQuit() })
|
布局的操作
创建布局
1
| layout, _ := gtk.FixedNew()
|
将布局放到窗口上
标签的操作
创建标签
1
| label, _ := gtk.LabelNew("文本内容")
|
修改标签内容
获取标签内容
1
| var result string = label.GetText()
|
按钮的操作
创建按钮
1
| button, _ := gtk.ButtonNew()
|
设置按钮尺寸
1
| button.SetSizeRequest(<width>, <height>)
|
设置按钮标签
设置事件
点击事件
1 2 3
| button.Connect("clicked", func() { ... })
|
按钮按下
1 2 3
| button.Connect("pressed", func() { ... })
|
按钮释放
1 2 3
| button.Connect("released", func() { ... })
|
将按钮放在布局上
指定在放置时指定位置
1
| layout.Put(button, <width>, <height>)
|
图片的操作
设置允许在屏幕上绘图
1
| window.SetAppPaintable(true)
|
创建图片
1
| image, _ := gtk.ImageNewFromFile("<file>")
|
先创建纹理再创建图片
1 2
| pixbuf, _ := gdk.PixbufNewFromFile("<file>") image, _ := gtk.ImageNewFromPixbuf(pixbuf)
|
获取图片尺寸
1 2
| var width, height int image.GetSizeRequest(&width, &height)
|
修改纹理尺寸
1
| pixbuf, _ = pixbuf.ScaleSimple(<width>, <height>, gdk.INTERP_BILINEAR)
|
键盘和鼠标的操作
键盘事件
键盘按下
1 2 3
| window.Connect("key-press-event", func() { ... })
|
键盘松开
1 2 3
| window.Connect("key-release-event", func() { ... })
|
鼠标事件
设置允许鼠标事件
1
| window.SetEvents(int(gdk.BUTTON_PRESS_MASK))
|
鼠标按下
1 2 3
| window.Connect("button-press-event", func() { ... })
|
运行GTK
完成