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()
}
程序運行效果: