Go-GTK 控件


控件

控件簡介

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

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

  • 容器控件:它可以容納別的控件。我們可以理解為盒子,盒子拿來裝東西。容器控件又分為兩類,一類只能容納一個控件,如窗口,按鈕;另一類能容納多個控件,如布局控件。
  • 非容器控件:它不可以容納別的控件。如標簽、行編輯。

控件的使用

現在我們已經創建出了一個窗口程序,但是這個窗口什么也沒有。接下來我們在窗口上添加按鈕等元素。

在窗口中添加按鈕控件,首先創建按鈕,如下所示:

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

按鈕創建完成后,需要將按鈕添加到窗口中,這就需要用到 布局 控件。

所謂 布局 控件,就是對窗口中將要顯示的控件元素進行排列。將按鈕等控件放在布局控件中,然后通過調整按鈕控件的坐標來設置其在窗口中的位置。

創建布局控件:

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

布局控件創建完成后,將按鈕添加到布局控件中。

layout.Add(b)

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

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

整體代碼:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM