真的365平台

发现用 Go 写桌面程序真的太爽了

发布时间: 2025-08-01 05:30:02 作者: admin 阅读量: 1622 评论数: 696

废话不多说,先看效果,我已经安装到 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?应用

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

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

相关文章