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

相关文章
相关标签/搜索