点击这里,阅读原文。
前言
在 GitHub 查找关于 golang 跨平台编译的 UI 库,先从 awesome-go 着手。仓库地址:
这个项目还有一个中文版本的叫 awesome-go-cn
,仓库地址:
就用这个仓库吧,中文友好,比较容易提取重点。
排名第二个的 fyne,就是我们今天要介绍的对象。
fyne
fyne 框架,是基于 Material Design 为 Go 设计的跨平台本地 GUI。支持 Linux, macOS, Windows, BSD, iOS 和 Android。
官方给的一个示例,展示了其支持的丰富的组件。
在使用这个框架前,按照管理,看一下实现一个最简单的 hello world
demo,所需要的代码。
上述示例中,使用 NewWindow 创建了一个窗体,然后在窗体内,添加了一个文本标签 NewLabel。添加了一个按钮 NewButton。并实现通过点击按钮,改变文本标签的内容。
在命令行运行:
|
|
环境正常,运行没有报错,可以看到如下窗体界面。
分别是操作系统在浅色、暗色模式下的效果。
apple store helper 仓库
经过简单的介绍,大家对 fyne 应该有了一个初步的了解。 跟一般基于 QT 的项目写法类似,开发者使用组件,在窗体内绘制图形。以及窗体之间数据交互,事件通讯等高阶用法。
学习无过于阅读代码。在 github 上看到一个仓库,是用于 iPhone 14、iPhone 15 的购物车功能的,基于 fyne,实现了基本的控件布局,事件通讯,数据更新等,比较适合学习 fyne 的技术细节。
仓库地址:
下面我们在本地部署,并编译项目。
本地部署
本文所使用的环境如下:
- 操作系统:Windows 10
- golang 版本:1.21.1
- docker 版本:24.0.5
- git 版本:2.37
阅读本文,假设你已经熟练掌握了使用命令行、环境搭建。
1,克隆仓库
命令行执行:
|
|
2,安装项目依赖
进入项目根目录,命令行执行
|
|
项目文件 go.mod 内指定了 golang 版本最低 1.17,所以你本地使用的不是最新的 1.21,也是没问题的。
3,fyne & fyne-cross 工具
项目编译使用 fyne-cross,你首先需要安装这两个工具。命令哈执行:
|
|
安装完成后,在命令行内可以直接访问到
|
|
上述两个命令输出正常,说明你的本地安装没有问题。如果报错 fyne/fyne-cross 找不到命令,一般是 PATH 的问题,手动设置,或搜索解决。
4,docker
fyne-cross 为了执行跨平台编译,脱离本地环境依赖,使用了 docker 环境。你本地必须安装,并运行 docker 服务。可以在命令行运行:
|
|
查看 docker 是否正在运行。
5,跨平台编译
准备好上述环境,就可以开始执行编译了。我们仅以 Windows amd64 为例,在项目根目录,执行编译指令:
|
|
下面是编译截图:
6,大功告成
编译步骤有问题的,按照编译提示解决,直到完全结束。在根目录下自动创建了 fyne-cross 目录,存放着编译结果。目录结构如下:
其中,fyne-cross/bin/windows-amd64
下的 hteen-apple-store-helper.exe
,就是可以双击打开,在 Windows 下使用的文件。
打开后预览截图:
关注公众号,后台回复【ios252】,获取编译打包好的文件。如果你需要其他平台的打包文件,可以文章下留言告诉我。
最后
本文介绍了 golang 跨平台 UI 库 fyne 的基础知识,并通过一个现实项目,演示了 fyne 项目打包的整体过程。其中有许多使用中的技术细节,你可能并不能一次性通过,通过对应的技术文档,或者把错误抛给 ChatGPT,相信都可以快速解决。
我是@程序员小助手,专注编程知识,圈子动态的IT领域原创作者。