(原) Fyne基于Golang的GUI库

原创文章,请后转载,并注明出处。

虽说在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 这里讲了交叉编译

除此之外,能找到的相关文档有限。

题外:发现开发一个东西,要让更多的人理解并使用,需要完整的使用说明、示例,降低使用者的入门难度。看到这里已经有点看不下去了,资料不好找,只能读不多的示例,而且不是逐步深入的示例。在有更多选择的今天,或许使用者就开始准备转向其它了。

相关文章