发现用 Go 写桌面程序真的太爽了...
废话不多说,先看效果,我已经安装到 macOS 了。
它是如何构建的?答案是:Fyne
库的魔力。
什么是 Fyne?
Fyne 是一个用 Go 语言编写的跨平台 GUI 库,它允许开发者使用 Go 语言快速构建具有原生外观和感觉的桌面应用程序。
Fyne 的设计理念是简单、易用,同时提供丰富的组件和灵活的布局选项,使得开发者能够专注于应用逻辑,而不必担心界面设计的复杂性。
特点:
跨平台支持:一次编写,应用程序可运行在
Windows
、macOS
、Linux
,甚至iOS
和Android
上。易于使用:API 设计简单,开发者无需深入学习复杂的 GUI 原理,只需要熟悉 Go 基础即可轻松上手。
现代外观:Fyne 内置了美观的界面组件,不需要第三方主题支持,应用界面看起来即简洁又现代。
Fyne 的基本架构
核心组件:
应用程序 (app):所有的 Fyne 应用都从 app.New() 开始。
窗口 (window):创建窗口,管理窗口大小和显示内容。
容器 (container):负责布局和排列组件,如按钮、标签、输入框等。
组件 (widgets):Fyne 提供了丰富的 UI 组件,如按钮、标签、输入框等,能够帮助开发者快速搭建界面。
Fyne 的安装
假设你已经安装了 Go 语言,只需要执行以下命令来安装 Fyne:
go get fyne.io/fyne/v2
Hello, Fyne! (示例)
package main
import (
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
)
func main() {
// 创建应用程序
myApp := app.New()
// 创建窗口
myWindow := myApp.NewWindow("Hello Fyne")
// 设置窗口内容
label := widget.NewLabel("Hello, Fyne!")
myWindow.SetContent(container.NewVBox(
label, // 添加标签
widget.NewButton("Click Me", func() { // 添加按钮
label.SetText("Welcome to the world of Fyne!")
}),
))
// 显示窗口
myWindow.ShowAndRun()
}
代码详解:
app.New():创建应用程序实例。
myApp.NewWindow():创建一个新窗口,参数是窗口标题。
widget.NewLabel():创建一个文本标签,显示 "你好,Fyne!"。
widget.NewButton():创建一个按钮,点击按钮后会更新标签的内容。
container.NewVBox():将标签和按钮垂直排列在一起。
运行效果:
Fyne 常见组件
常用组件如下:
标签 (Label):显示静态文本。
按钮 (Button):用户点击后触发事件。
输入框 (Entry):允许用户输入文本。
进度条 (ProgressBar):显示操作进度。
下拉框 (Select):用于选择一个选项。
还可以自定义主题,Fyne 提供了默认的现代主题,但也可以根据需要自定义组件的外观,例如设置自定义字体、颜色等。
myApp.Settings().SetTheme(theme.LightTheme()) // 设置为浅色主题
Fyne 打包与发布
在 Fyne 中打包应用程序可以通过 fyne 提供的命令行工具 fyne-cross 和 fyne 自带的 fyne package 命令来实现。
使用 fyne package 打包
1、首先,确保你已经安装了 Fyne 的命令行工具。
go get fyne.io/fyne/v2/cmd/fyne
2、确保你的应用程序已经写好,并且可以正常运行。
3、运行以下命令进行打包:
fyne package -os windows # Windows 打包
fyne package -os darwin # macOS 打包
fyne package -os linux # Linux 打包
参数:
-os:指定打包的操作系统(windows、darwin、linux)。
-icon:可以通过 -icon 参数来设置应用的图标,使用 .png 格式。
例如,将应用程序打包为 macOS 可执行文件,并指定图标:
fyne package -os darwin -icon license.png
使用 fyne-cross 打包跨平台应用
Fyne 提供了 fyne-cross 工具,可以跨平台打包应用程序。
例如,可以在 Linux 或 macOS 系统上打包 Windows 和 macOS 可执行文件。
一、安装 fyne-cross
go install github.com/fyne-io/fyne-cross@latest
二、使用 fyne-cross 打包
fyne-cross 支持多种平台打包,包括 Windows、macOS、Linux 以及 iOS 和 Android。
具体的打包命令如下:
fyne-cross windows # 打包为 Windows 可执行文件
fyne-cross darwin # 打包为 macOS 应用
fyne-cross linux # 打包为 Linux 可执行文件
fyne-cross android # 打包为 Android APK
fyne-cross ios # 打包为 iOS 应用
感兴趣的,可以折腾起来了 ~
我会将最开始的例子源码,放到知识星球中,欢迎大家前往交流与下载!