Go语言图形界面开发GTK:常用控件—布局

  • A+
所属分类:Golang

1 水平布局

glade设计如下:
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

示例代码:

```
package main

import (
"os"

"github.com/mattn/go-gtk/gtk"

)

func main() {
gtk.Init(&os.Args)

builder := gtk.NewBuilder()       //新建builder
builder.AddFromFile("test.glade") //读取glade文件

// 获取窗口控件指针,注意"window1"要和glade里的标志名称匹配
window := gtk.WindowFromObject(builder.GetObject("window1"))
window.SetSizeRequest(480, 320) //设置窗口大小

//获取hbox控件
hbox := gtk.HBoxFromObject(builder.GetObject("hbox1"))

button := gtk.NewButtonWithLabel("新按钮") //新建按钮
hbox.Add(button)                        //按钮添加到布局中

//按窗口关闭按钮,自动触发"destroy"信号
window.Connect("destroy", gtk.MainQuit)

window.ShowAll()

gtk.Main()

}

```

程序运行效果:
这里写图片描述

2 垂直布局

glade设计如下:
这里写图片描述

这里写图片描述

示例代码:

```
package main

import (
"os"

"github.com/mattn/go-gtk/gtk"

)

func main() {
gtk.Init(&os.Args)

builder := gtk.NewBuilder()       //新建builder
builder.AddFromFile("test.glade") //读取glade文件

// 获取窗口控件指针,注意"window1"要和glade里的标志名称匹配
window := gtk.WindowFromObject(builder.GetObject("window1"))
window.SetSizeRequest(480, 320) //设置窗口大小

//获取布局控件
vbox := gtk.VBoxFromObject(builder.GetObject("vbox1"))

button := gtk.NewButtonWithLabel("新按钮") //新建按钮
vbox.Add(button)                        //按钮添加到布局中

//按窗口关闭按钮,自动触发"destroy"信号
window.Connect("destroy", gtk.MainQuit)

window.ShowAll()

gtk.Main()

}

```

程序运行效果:
这里写图片描述

3 表格布局

glade设计如下:
这里写图片描述

这里写图片描述

表格布局添加控件位置坐标说明:
这里写图片描述

示例代码:

```
package main

import (
"os"

"github.com/mattn/go-gtk/gtk"

)

func main() {
gtk.Init(&os.Args)

builder := gtk.NewBuilder()       //新建builder
builder.AddFromFile("test.glade") //读取glade文件

// 获取窗口控件指针,注意"window1"要和glade里的标志名称匹配
window := gtk.WindowFromObject(builder.GetObject("window1"))
window.SetSizeRequest(480, 320) //设置窗口大小

//获取布局控件
table := gtk.TableFromObject(builder.GetObject("table1"))

button := gtk.NewButtonWithLabel("新按钮")  //新建按钮
table.AttachDefaults(button, 2, 3, 2, 3) //指定位置添加控件

//按窗口关闭按钮,自动触发"destroy"信号
window.Connect("destroy", gtk.MainQuit)

window.ShowAll()

gtk.Main()

}

```

程序运行效果:
这里写图片描述

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin