废话不多说,先看效果,我已经安装到 macOS 了。

6bff294f8f03f0df6b24e35864352fee.gif

81c9171fea9afd5bae79e52292dd958c.png

它是如何构建的?答案是:Fyne 库的魔力。

什么是 Fyne?

Fyne 是一个用 Go 语言编写的跨平台 GUI 库,它允许开发者使用 Go 语言快速构建具有原生外观和感觉的桌面应用程序。

Fyne 的设计理念是简单、易用,同时提供丰富的组件和灵活的布局选项,使得开发者能够专注于应用逻辑,而不必担心界面设计的复杂性。

特点:

  • 跨平台支持:一次编写,应用程序可运行在 WindowsmacOSLinux,甚至 iOSAndroid 上。

  • 易于使用: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():将标签和按钮垂直排列在一起。

运行效果:

07721dbb962bd8d15f3218fc81c6630d.png

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?应用

感兴趣的,可以折腾起来了 ~

我会将最开始的例子源码,放到知识星球中,欢迎大家前往交流与下载!

53378188eb7e05556bc3ce7b0465591d.jpeg

058ced052013e6d1d442758196b71193.png

e01667200b8721b1c60630b60da44cf4.jpeg

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐