Golang Gtk+3教程:Grid布局

在上个例子中我们使用了box布局,现在让我们来学习另一种布局——grid。其实这几种布局都大同小异,如果你看懂了上一个例子,想必使用grid也不是难事。

程序运行效果:

package main

import (
    "github.com/gotk3/gotk3/glib"
    "github.com/gotk3/gotk3/gtk"
    "os"
)

func main() {
    const appId = "com.nayoso.example"

    app, _ := gtk.ApplicationNew(appId, glib.APPLICATION_FLAGS_NONE)
    app.Connect("activate", func() {
        onActivate(app)
    })
    app.Run(os.Args)
}

func onActivate(application *gtk.Application) {
    appWindow, _ := gtk.ApplicationWindowNew(application)
    appWindow.SetTitle("Grid example")
    //-- 以上,通常的代码输入完了,接下就是这个例子的重点了:-D

    grid, _ := gtk.GridNew()    //创建容器
    appWindow.Add(grid)     //将容器添加到window中

    //现在再让我们创建一些按钮来展示grid的效果
    button1, _ := gtk.ButtonNewWithLabel("Button 1")
    button2, _ := gtk.ButtonNewWithLabel("Button 2")
    button3, _ := gtk.ButtonNewWithLabel("Button 3")
    //将buttons添加到grid中
    grid.Attach(button1, 0, 0, 1, 1)    //参数:左,上,宽,高
    grid.Attach(button2, 1, 0, 1, 1)
    grid.Attach(button3, 0, 1, 2, 1)
    //-- 注意一下,按钮的位置就像在一个坐标轴中,原点在左上,x轴向右,y轴向下
    //-- 如果你不是很喜欢或者很懂这种方式也没关系,后面我还会介绍可视化的UI设计工具

    appWindow.ShowAll()
}

你可能发现了,我有时会使用容器和布局来称呼同一个东西。实际上,这是因为其同时具有这两种性质。

原文地址:https://www.cnblogs.com/xiyu714/p/9897408.html

时间: 2024-08-06 06:27:59

Golang Gtk+3教程:Grid布局的相关文章

Golang Gtk+3教程:开始

GTK+是一个控件工具包.每个通过GTK+创建的用户界面由一些控件组成. 控件是层级式的,window控件是主容器,通过在window中添加按钮.下拉菜单.输入字段等其他控件构成用户界面. 如果是复杂的用户界面,推荐使用GtkBuilder(从XML UI描述文件创建界面)来代替手动编译用户界面. 你还可以使用可视化的界面编辑器,像Glade GTK+是事件驱动的.这个工具包监听像点击按钮一样的事件并将其发送给你的应用. 为了使你初步了解如何使用GTK+,我们将创建一个Gtk应用.这个应用会创建

Golang Gtk+3教程:GtkBuilder使用XML构建UI

在这节我将介绍GtkBuilder,其使我们可以从一个描述界面的xml文件构建UI.而这个文件我们可以使用Glade生成,这会极大的方便我们编辑用户界面.这节我们会使用到这么一个XML文件,名字为Builder.ui(可以在本文后面看到,请创建并放在项目下).习惯上,我们使用.ui作为扩展名. 示例: package main import ( "github.com/gotk3/gotk3/glib" "github.com/gotk3/gotk3/gtk" &q

Expression Blend实例中文教程(3) - 布局控件快速入门Grid

上一篇对Blend 3开发界面进行了快速入门介绍,本篇将基于Blend 3介绍Silverlight控件.对于微软开发工具熟悉的朋友,相信您很快就熟悉Blend的开发界面和控件. XAML概述 Silverlight的控件绘制是由XAML语言进行支持的.什么是XAML语言? 简单的说,XAML(Extensible Application Markup Language )是一款基于XML的描述性语言,中文也叫做可扩展应用程序标记语言. 该语言是由微软开发创建,主要用于构建WPF和Silverl

Grid布局和Flex布局.md

Grid布局,还是Flex布局? 网格布局和Flex布局的差异? 有人认为:Flexbox用于一维布局,一行或一列.网格用于二维布局,多行和多列. 有的人认为:网格使用真实的列和行,内容会被一列一列.一行一行的排列.但是Flexbox没有,不仅是在二维里面,而且在一维里面也是如此.Flexbox并不适用于我们一直在使用的大部分功能. 大多数人认为:将Grid用于页面级布局,而将flexbox用于其他所有内容. 先回顾一下网格布局和Flex布局. 网格布局 采用网格布局的区域,称为"容器"

css Grid布局

CSS Grid 布局完全指南(图解 Grid 详细教程)https://www.html.cn/archives/8510#prop-grid-gap 5分钟学会 CSS Grid 布局https://www.html.cn/archives/8506 如何使用 CSS Grid 快速而又灵活的布局https://www.html.cn/archives/8512 原文地址:https://www.cnblogs.com/muou2125/p/12001801.html

AutoCAD2014室内设计 AutoCAD2009施工图教程 CAD布局及规范作图教程 室内手绘入门教程

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut

[译]JavaFX 2.0+系列教程-使用布局(1)

JavaFX 2.0+系列教程-使用布局(1) 这个系列的教程主要是介绍如何在JavaFX应用程序中使用布局面板来创建用户界面. 主要包括以下3个主题: 使用内置的布局面板 - 介绍内置的布局面板,以及为每个面板提供简单的示例. 设置节点大小和对齐的技巧 - 提供了为节点覆盖默认大小和位置的示例. 使用CSS来修饰布局面板 - 介绍如何使用CSS来自定义布局面板. [译]JavaFX 2.0+系列教程-使用布局(1),布布扣,bubuko.com

[译]JavaFX 2.0+系列教程-使用布局(2)-使用内置的布局面板(1)

JavaFX 2.0+系列教程-使用布局(2)-使用内置的布局面板(1)(Layout Pane) 本系列教程主要介绍JavaFX SDK中布局和容器相关类,我们称之为面板(Pane).使用布局面板能够非常简单的管理JavaFX应用程序中的界面元素(Node). 我们可以为每个界面元素设置位置和大小来进行手动布局,但是更简单的选择是使用布局面板.JavaFX SDK中提供了一系列的布局面板,使得可以简单的设置和管理一些经典布局,比如行(Row).列(Column).堆栈(Stack)和瓷砖(Ti

AutoCAD2014室内设计 AutoCAD2009施工图教程 CAD布局及规范作图教程 室内手绘入门教程

热门推荐电脑办公计算机基础知识教程 Excel2010基础教程 Word2010基础教程 PPT2010基础教程 五笔打字视频教程 Excel函数应用教程 Excel VBA基础教程 WPS2013表格教程 更多>平面设计PhotoshopCS5教程 CorelDRAW X5视频教程 Photoshop商业修图教程 Illustrator CS6视频教程 更多>室内设计3Dsmax2012教程 效果图实例提高教程 室内设计实战教程 欧式效果图制作实例教程 AutoCAD2014室内设计 Aut