Go版GTK:常用控件—佈局

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

程序運行效果:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章