zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    加密的PDF文件怎么查看
    SQL Server数据库中怎么加密数据
    虚拟磁盘也加密
    怎么用密码保护您的文件夹
    如何用cmd命令加密文件夹
    快压轻松创建加密压缩包
    GPS学习的一些链接
    【最新软件预告】邮件群发器Console版
    第六格很酷的滚动活动会员条
    邀请您加入移动开发专家联盟
  • 原文地址:https://www.cnblogs.com/lpgit/p/13423602.html
Copyright © 2011-2022 走看看