GUI库fyne入门 | Go主题月

2,948 阅读4分钟

简介

Fyne工具包是一个易于学习、免费和开源的平台,用于为桌面、移动和其他平台构建图形应用程序。将Go编程语言的强大和简单性与精心制作的小部件库相结合,现在比以往任何时候都更容易构建应用程序,并在所有平台和商店中部署它。

官网fyne.io/

Github(github.com/fyne-io/fyn…]

安装

使用go install将可执行文件复制到你的go bin目录。要将带有图标的应用程序安装到操作系统的标准应用程序位置,你可以使用fyne实用程序和“install”子命令。

$ go get fyne.io/fyne/v2/cmd/fyne
$ fyne install

helloworld

package main

import (
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/container"
	"fyne.io/fyne/v2/widget"
)

func main() {
	a := app.New()
	w := a.NewWindow("Hello")

	hello := widget.NewLabel("Hello Fyne!")
	w.SetContent(container.NewVBox(
		hello,
		widget.NewButton("Hi!", func() {
			hello.SetText("Welcome :)")
		}),
	))

	w.ShowAndRun()
}
$ go run main.go

你就会看到

image.png

组件列表

$ go get fyne.io/fyne/v2/cmd/fyne_demo/
$ fyne_demo

image.png

AccordionContainer

折叠菜单

Box

Box widget是一个简单的列表,其中子元素按单列(垂直排列)或单行(水平排列)排列。

Button

按钮小部件有一个文本标签和图标,都是可选的。

Check

Check小部件有一个文本标签和一个已选中(或未选中)的图标。

Entry

Entry小部件允许在聚焦时输入简单的文本。

PasswordEntry小部件隐藏文本输入并添加一个按钮来显示文本。

Form

表单小部件是两个列网格,其中每行有一个标签和一个小部件(通常是一个输入)。网格的最后一行将包含适当的表单控件按钮(如果需要显示的话)。

Group

Group widget是一组小部件,其中包含一个视觉分隔符,用于指示顶部有标题的组。

Hyperlink

Hyperlink小部件是一个具有适当填充和布局的文本组件。当单击时,URL将在默认的web浏览器中打开。

Icon

图标小部件是一个基本的图像组件,它加载其资源以匹配主题。

Label

Label小部件是一个具有适当填充和布局的标签组件。

Progress bar

ProgressBar小部件创建一个指示进度的水平面板。

Radio

单选小部件的旁边有一个文本标签列表和单选检查图标。

ScrollContainer

ScrollContainer定义了一个比内容小的容器。

Select

Select widget有一个选项列表,其中显示当前选项,并在单击时触发一个事件函数。

SelectEntry

Select entry小部件向Select小部件添加一个可编辑组件。用户可以选择一个选项或输入自己的值。

Slider

滑动条表示小部件可以在两个固定值之间滑动。

SplitContainer

SplitContainer定义了一个容器,其大小在两个子容器之间分割。

TabContainer

TabContainer小部件允许从列表中切换可见内容。每个项目都由小部件顶部的一个按钮表示。

TextGrid

TextGrid是一个等宽的字符网格。这是设计用于文本编辑器,代码预览或终端模拟器。

Toolbar

工具栏小部件创建工具按钮的水平列表。

布局

image.png

Horizontal Box (HBox)

Vertical Box (VBox)

Center

中心布局将所有容器元素放置在容器的中心。每个对象将被设置为它的最小大小。

Grid

网格布局在可用空间中均匀地排列项目。指定若干列后,对象将被水平定位,直到达到列数时才开始新行。所有对象具有相同的大小,即宽度除以列总数,高度为总高度除以所需的行数。-填充。

GridWrap

GridWrap布局将所有项按行排列,如果空间不足,则换行到新行。所有对象将被设置为相同的大小,也就是传递给布局的大小。此布局可能不尊重项目MinSize来管理此统一布局。常用于文件管理器或图像缩略图列表。

Border

边框布局支持将项目定位在可用空间之外。边框被传递给对象(上、左、下、右)的指针。容器中没有放置在边框上的所有项目将填满剩余的空间。

Max

最大布局位置所有容器元素,以填补可用空间。所有的对象都是全尺寸的,并按照它们被添加到容器中的顺序绘制(最后一个在顶部)。