赞
踩
Fyne是一个开源的Golang图形化界面库,通过它可以便捷的为桌面/移动及其它设备建立图形化应用。结合了Golang的强大和简洁,Fyne提供了一整套的组件库,通过它我们可以更方便的进行全平台开发并将你的应用部署至各个平台的应用商店。
根据类型划分, Fyne的组件分为以下几类:
举个例子:
- 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()之后的代码,只有在程序退出的时候才会被执行。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。