【笔记】gotk3学习笔记
前言
在Go语言中通过gotk3/gotk3使用GTK
下载依赖
下载GTK
MacOS
1 | brew install gtk+3 |
下载GoGTK
1 | go get github.com/gotk3/gotk3/gtk |
快速入门
1 |
初始化
1 | gtk.Init(&os.Args) |
窗体的操作
创建窗体
1 | window, _ := gtk.WindowNew(gtk.WINDOW_TOPLEVEL) |
设置窗体尺寸
1 | window.SetSizeRequest(<width>, <height>) |
设置窗体尺寸固定
1 | window.SetResizable(false) |
设置窗体标题
1 | window.SetTitle("文本内容") |
设置窗体图标
1 | window.SetIconFromFile("<file>") |
获取窗体尺寸
1 | var width, height int |
显示窗体
1 | window.Show() |
显示窗体和所有其他组件
1 | window.ShowAll() |
设置事件
关闭窗体事件
- 通过
gtk.MainQuit()函数退出程序
1 | window.Connect("destroy", func() { |
布局的操作
创建布局
1 | layout, _ := gtk.FixedNew() |
将布局放到窗口上
1 | window.Add(layout) |
标签的操作
创建标签
1 | label, _ := gtk.LabelNew("文本内容") |
修改标签内容
1 | label.SetText("文本内容") |
获取标签内容
1 | var result string = label.GetText() |
按钮的操作
创建按钮
1 | button, _ := gtk.ButtonNew() |
设置按钮尺寸
1 | button.SetSizeRequest(<width>, <height>) |
设置按钮标签
1 | button.SetLabel("文本内容") |
设置事件
点击事件
1 | button.Connect("clicked", func() { |
按钮按下
1 | button.Connect("pressed", func() { |
按钮释放
1 | button.Connect("released", func() { |
将按钮放在布局上
1 | layout.Add(button) |
指定在放置时指定位置
1 | layout.Put(button, <width>, <height>) |
图片的操作
设置允许在屏幕上绘图
1 | window.SetAppPaintable(true) |
创建图片
1 | image, _ := gtk.ImageNewFromFile("<file>") |
先创建纹理再创建图片
1 | pixbuf, _ := gdk.PixbufNewFromFile("<file>") |
获取图片尺寸
1 | var width, height int |
修改纹理尺寸
1 | pixbuf, _ = pixbuf.ScaleSimple(<width>, <height>, gdk.INTERP_BILINEAR) |
键盘和鼠标的操作
键盘事件
键盘按下
1 | window.Connect("key-press-event", func() { |
键盘松开
1 | window.Connect("key-release-event", func() { |
鼠标事件
设置允许鼠标事件
1 | window.SetEvents(int(gdk.BUTTON_PRESS_MASK)) |
鼠标按下
1 | window.Connect("button-press-event", func() { |
运行GTK
1 | gtk.Main() |