Golang GUI编程-图形化界面库简介

本文介绍了Fyne,一个用于Golang的开源图形化界面库,旨在简化跨平台桌面和移动应用的开发。Fyne提供了包括基本组件、画布、布局、容器、小组件和数据绑定在内的丰富组件库。文章通过创建一个简单的标签应用为例,演示了如何使用Fyne进行GUI编程,包括设置依赖、编译和运行应用。

Fyne是一个开源的Golang图形化界面库,通过它可以便捷的为桌面/移动及其它设备建立图形化应用。结合了Golang的强大和简洁,Fyne提供了一整套的组件库,通过它我们可以更方便的进行全平台开发并将你的应用部署至各个平台的应用商店。

1. 部件分类

根据类型划分, Fyne的组件分为以下几类:

  • 基本组件(basics)
  • 画布(Canvas)
  • 布局(Layout)
  • 容器(Container)
  • 小组件(Widget)
  • 数据包(Data binding)

举个例子:

标签

package main

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

func main() {
	app := app.New()

	w := app.NewWindow("Hello")
	w.SetContent(widget.NewLabel("Hello Fyne!"))

	w.ShowAndRun()
}

这个例子引用了fyne的app和widget包,在编译前要把依赖准备好,golang的包管理机制可以很方便的做这个事情:

完成之后执行目录下会生成go.mod文件,内容如下:

module fyne/1HelloFyne

go 1.17

require fyne.io/fyne/v2 v2.1.2

require (
	github.com/davecgh/go-spew v1.1.1 // indirect
	github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3 // indirect
	github.com/fsnotify/fsnotify v1.4.9 // indirect
	github.com/go-gl/gl v0.0.0-20210813123233-e4099ee2221f // indirect
	github.com/go-gl/glfw/v3.3/glfw v0.0.0-20211024062804-40e447a793be // indirect
	github.com/godbus/dbus/v5 v5.0.4 // indirect
	github.com/goki/freetype v0.0.0-20181231101311-fa8a33aabaff // indirect
	github.com/pmezard/go-difflib v1.0.0 // indirect
	github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564 // indirect
	github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 // indirect
	github.com/stretchr/testify v1.5.1 // indirect
	github.com/yuin/goldmark v1.3.8 // indirect
	golang.org/x/image v0.0.0-20200430140353-33d19683fad8 // indirect
	golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 // indirect
	golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c // indirect
	golang.org/x/text v0.3.3 // indirect
	gopkg.in/yaml.v2 v2.2.8 // indirect
)

 到这里依赖环境就准备好了,开始编译代码,使用终端进入代码目录,使用命令‘go build .’将代码编译为可执行文件,然后通过鼠标双击可执行文件或通过命令行‘./’命令运行应用最终执行效果如下:

注意:fyne用户界面可以通过App.Run() or Window.ShowAndRun()来启动显示,但是使用方面有以下限制:

1. 这两个接口的调用必须在main函数中执行。

2. Run()接口在一份代码中只能调用一次。

3. 桌面应用可以通过App.Quit()直接退出(移动应用暂不支持)。

4.  应用也可以通过关闭所有窗口来关闭。

5. Run()之后的代码,只有在程序退出的时候才会被执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电梯人来人往

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值