虽说在Ubuntu系统下,且Golang多以命令行操作为主,但GUI界面也是不可少的,起码对用户更加友好。
Fyne是一个跨平台的UI工具包,提供基于OpenGL的跨平台图形界面应用开发。
在Ubuntu系统中,需要先安装库 libegl1-mesa-dev 和 xorg-dev。
一个最简的HelloWorld
package main
import (
"fyne.io/fyne/widget"
"fyne.io/fyne/app"
)
func main() {
app := app.New()
w := app.NewWindow("Hello")
w.SetContent(widget.NewVBox(
widget.NewLabel("Hello Fyne!"),
widget.NewButton("Quit", func() {
app.Quit()
}),
))
w.ShowAndRun()
}
看起来还是比较简单的,我试了中文,支持不好。办法:环境变量 FYNE_FONT=ttf文件路径 即可。或者代码设置环境变量
func init(){
os.Setenv("FYNE_FONT","./yahei.ttf")
}
不过虽然运行看起来没有问题,但命令行还是显示了不少的错误。
export FYNE_THEME=light , 居然界面外观就变了,也是简单得很。
export FYNE_SCALE=2.5 , 界面放大,通过环境变量改变效果,也是方便。
标准组件有:按钮.选择框.列表框.Box(用于布局).表单.组.链接.文本.进度条.单选框.滚动容器.Tab容器(通过标签切换显示内容).工具条
https://fyne.io/develop/custom-widget.html 这里教如何写一个自己的组件
https://fyne.io/develop/cross-compiling.html 这里讲了交叉编译
除此之外,能找到的相关文档有限。
题外:发现开发一个东西,要让更多的人理解并使用,需要完整的使用说明、示例,降低使用者的入门难度。看到这里已经有点看不下去了,资料不好找,只能读不多的示例,而且不是逐步深入的示例。在有更多选择的今天,或许使用者就开始准备转向其它了。