Go版GTK:常用控件—布局

1 水平布局

glade设计如下:
Go版GTK:常用控件—布局_第1张图片

Go版GTK:常用控件—布局_第2张图片

Go版GTK:常用控件—布局_第3张图片

Go版GTK:常用控件—布局_第4张图片

示例代码:

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()
}

程序运行效果:
Go版GTK:常用控件—布局_第5张图片

2 垂直布局

glade设计如下:
Go版GTK:常用控件—布局_第6张图片

Go版GTK:常用控件—布局_第7张图片

示例代码:

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()
}

程序运行效果:
Go版GTK:常用控件—布局_第8张图片

3 表格布局

glade设计如下:
Go版GTK:常用控件—布局_第9张图片

Go版GTK:常用控件—布局_第10张图片

表格布局添加控件位置坐标说明:
Go版GTK:常用控件—布局_第11张图片

示例代码:

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()
}

程序运行效果:
Go版GTK:常用控件—布局_第12张图片

你可能感兴趣的:(【Go语言】,【图形界面编程】,Go语言开发实战)