Go-GTK 控件

控件

控件簡介

控件是對數據和方法的封裝。控件有本身的屬性和方法。屬性是指控件的特徵。方法是指控件的一些簡單而可見的功能。如按鈕就是一個控件,這個按鈕是方形的,裏面有張圖片,這是咱們能看到外觀屬性,同時,這個按鈕具有被人按下的功能。git

GTK 中控件主要分爲兩類:容器控件,非容器控件。github

  • 容器控件:它能夠容納別的控件。咱們能夠理解爲盒子,盒子拿來裝東西。容器控件又分爲兩類,一類只能容納一個控件,如窗口,按鈕;另外一類能容納多個控件,如佈局控件。
  • 非容器控件:它不能夠容納別的控件。如標籤、行編輯。

控件的使用

如今咱們已經建立出了一個窗口程序,可是這個窗口什麼也沒有。接下來咱們在窗口上添加按鈕等元素。佈局

在窗口中添加按鈕控件,首先建立按鈕,以下所示:網站

// 建立按鈕
b := gtk.NewButton()
// 設置按鈕大小
b.SetSizeRequest(80, 32)
// 設置按鈕內容
b.SetLabel("點擊")

按鈕建立完成後,須要將按鈕添加到窗口中,這就須要用到 佈局 控件。code

所謂 佈局 控件,就是對窗口中將要顯示的控件元素進行排列。將按鈕等控件放在佈局控件中,而後經過調整按鈕控件的座標來設置其在窗口中的位置。圖片

建立佈局控件:get

// 建立佈局控件(固定佈局,任意佈局)
layout := gtk.NewFixed()

佈局控件建立完成後,將按鈕添加到佈局控件中。博客

layout.Add(b)

這時按鈕在窗口的左上角,咱們先調整一下按鈕的位置。it

// 放在佈局的指定位置
layout.Put(b, 0, 0)
// 移動按鈕的位置,必須先Put(),再用Move()
layout.Move(b, 280, 224)

總體代碼:class

package main

import (
	"github.com/mattn/go-gtk/gtk"
	"os"
)

func main(){
	//GTK初始化操做
	gtk.Init(&os.Args)

	// 經過GTK建立窗口
	win := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)

	// 設置窗體的大小
	win.SetSizeRequest(640, 480)

	// 設置窗體標題
	win.SetTitle("GTK窗口")

	// 建立按鈕
	b := gtk.NewButton()
	// 設置按鈕大小
	b.SetSizeRequest(80, 32)
	// 設置按鈕內容
	b.SetLabel("點擊")

	// 建立佈局
	layout := gtk.NewFixed()
	// 將按鈕 b 添加到佈局中
	layout.Add(b)

	// 放在佈局的指定位置
	layout.Put(b, 0, 0)
	// 移動按鈕的位置,必須先Put(),再用Move()
	layout.Move(b, 280, 224)

	// 將佈局放在界面中顯示
	win.Add(layout)


	// 將界面顯示
	win.ShowAll()

	// 調用GTK下的main運行程序
	gtk.Main()
}

運行結果:

運行結果

代碼分析

Put

func (v *Fixed) Put(w IWidget, x, y int)
功能:固定佈局容器添加控件
參數:
  - IWidget:要添加的控件
  - x,y:控件擺放位置的座標

ShowAll

func (v *Widget) ShowAll()
功能:顯示全部的控件。若是窗口放入一個容器,這時容器上全部的控件也會顯示

李培冠博客

歡迎訪問個人我的網站:

李培冠博客:lpgit.com

相關文章
相關標籤/搜索