Go版GTK:常用控件—布局

原文地址:https://blog.csdn.net/tennysonsky/article/details/79274303

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

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

猜你喜欢

转载自blog.csdn.net/dodod2012/article/details/81481405
今日推荐