Go 语言生态中,GUI 一直是短板,更别说跨平台的 GUI 了。fyne
向前迈了一大步。fyne
是 Go 语言编写的跨平台的 UI 库,它可以很方便地移植到手机设备上。fyne
使用上非常简单,同时它还提供fyne
命令打包静态资源和应用程序。我们先简单介绍基本控件和布局,然后介绍如何发布一个fyne
应用程序。
由于fyne
包含一些 C/C++ 的代码,所以需要gcc
编译工具。在 Linux/Mac OSX 上,gcc
基本是标配,在 windows上有 3 种方式安装gcc
工具链:
安装fyne
go get -u fyne.io/fyne
简单窗口
package main
import (
"fyne.io/fyne"
"fyne.io/fyne/app"
"fyne.io/fyne/widget"
)
func main() {
// 创建应用程序对象
app := app.New()
// 创建一个新窗口
win := app.NewWindow("Hello World")
// 设置窗口内容
win.SetContent(widget.NewLabel("Hello World"))
// 设置窗口大小
win.Resize(fyne.NewSize(500, 500))
// 等价于 win.Show() app.Run()
win.ShowAndRun()
}
fyne
将功能划分到多个子包中:
fyne.io/fyne
:提供所有fyne
应用程序代码共用的基础定义,包括数据类型和接口;fyne.io/fyne/app
:提供创建应用程序的 API;fyne.io/fyne/canvas
:提供Fyne
使用的绘制 API;fyne.io/fyne/dialog
:提供对话框组件;fyne.io/fyne/layout
:提供多种界面布局;fyne.io/fyne/widget
:提供多种组件,fyne
所有的窗体控件和交互元素都在这个子包中。