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

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值