在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境

目录

  • [在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境](#在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境)
    • [一 Fyne 和 MSYS2简介](#一 Fyne 和 MSYS2简介)
      • [1.1 Fyne](#1.1 Fyne)
      • [1.2 MSYS2](#1.2 MSYS2)
    • [二 安装 MSYS2](#二 安装 MSYS2)
      • [2.1 下载MSYS2](#2.1 下载MSYS2)
      • [2.2 安装](#2.2 安装)
      • [2.3 环境变量设置](#2.3 环境变量设置)
      • [2.4 检测安装环境](#2.4 检测安装环境)
    • [三 参考文档](#三 参考文档)

在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境

一 Fyne 和 MSYS2简介

1.1 Fyne

fyne 是一个用于 Go 语言的 GUI 包,它提供了一个简单而强大的界面构建框架。

fyne 的核心是一个事件驱动的渲染引擎,它可以轻松地创建具有丰富交互性的图形界面。该框架提供了丰富的内置控件,如按钮、文本框、标签、列表等,并且支持自定义控件的创建。

此外,fyne 还提供了一系列的工具和函数,用于处理界面事件、绘制图形、处理图像和字体等。它还支持跨平台开发,可以在 Windows、macOS 和 Linux 等多个操作系统上运行。

总的来说,fyne 是一个非常强大和灵活的 GUI 包,可以帮助开发人员快速创建具有高交互性的图形界面。它简单易用,并且具有很高的可扩展性,可以满足各种不同的界面需求。

1.2 MSYS2

MSYS2 是一个基于 MinGW-w64 的发行版,它提供了一个完整的 POSIX 工具链和开发环境,可以让开发人员在 Windows 上轻松地进行开源开发。

MSYS2 包括了许多流行的开源工具,如 GCC、GDB、Make、Python、Perl 等等。它还提供了一个 Bash shell,可以让开发人员像在 Linux 上一样使用命令行。

使用 MSYS2,开发人员可以编译、调试和运行各种开源软件,包括 C、C++、Java、Python 等语言的程序。此外,MSYS2 还可以与其他 Windows 应用程序无缝集成,例如 Microsoft Visual Studio、 Eclipse CDT 等。

总的来说,MSYS2 是一个非常强大和灵活的发行版,为开发人员在 Windows 上进行开源开发提供了一个完整的解决方案。

二 安装 MSYS2

2.1 下载MSYS2

MSYS2下载地址

2.2 安装

选择安装目录(根据个人喜好进行选择),如图1:

安装完成,如图2:

启动UCRT64环境:

执行以下安装命令:

bash 复制代码
pacman -Syu
pacman -S git mingw-w64-x86_64-toolchain
pacman -S mingw-w64-ucrt-x86_64-gcc
gcc --version

各环境的差别,如图4:

2.3 环境变量设置

环境变量设置包括windows环境变量设置和UCRT64两个环境,Windows 环境需要加入:

UCRT64环境变量PATH加入Go的bin目录:

执行:

bash 复制代码
source .bashrc
go version
go install fyne.io/fyne/v2/cmd/fyne@latest

正确显示go版本及安装fyne命令行,即配置成功!

2.4 检测安装环境

下载Fyne Setup

解压后双击exe文件,显示如下则环境配置成功!

注意:使用Goland进行开发时,编译环境需加入:

text 复制代码
CC=gcc;CGO_ENABLED=1;GOARCH=amd64;GOOS=windows

否则报错:

text 复制代码
imports github.com/go-gl/gl/v3.2-core/gl: build constraints exclude all Go files in E:\workspace\go\...

中文显示乱码解决方法:

在mian包中init函数加入:

go 复制代码
func init() {
	//设置中文字体:解决中文乱码问题
	fontPaths := findfont.List()
	for _, path := range fontPaths {
		if strings.Contains(path, "msyh.ttf") || strings.Contains(path, "simhei.ttf") || strings.Contains(path, "simsun.ttc") || strings.Contains(path, "simkai.ttf") {
			os.Setenv("FYNE_FONT", path)
			break
		}
	}
}

Windows下打包:

shell 复制代码
fyne package -os windows -icon app.jpg

三 参考文档

3.1 Fyne 官方帮助文档

相关推荐
007php00712 小时前
GoZero 上传文件File到阿里云 OSS 报错及优化方案
服务器·开发语言·数据库·python·阿里云·架构·golang
不爱说话郭德纲13 小时前
聚焦 Go 语言框架,探索创新实践过程
go·编程语言
高 朗14 小时前
【GO基础学习】基础语法(2)切片slice
开发语言·学习·golang·slice
IT书架14 小时前
golang面试题
开发语言·后端·golang
醒过来摸鱼20 小时前
【Golang】协程
开发语言·后端·golang
灼华十一1 天前
算法编程题-排序
数据结构·算法·golang·排序算法
宋发元1 天前
Go语言使用 kafka-go 消费 Kafka 消息教程
golang·kafka·linq
宋发元1 天前
Go消费kafka中kafkaReader.FetchMessage(ctx)和kafkaReader.ReadMessage(ctx)的区别
golang·kafka·linq
祁许1 天前
【Golang】手搓DES加密
开发语言·golang·密码学
凡人的AI工具箱1 天前
15分钟学 Go 实战项目六 :统计分析工具项目(30000字完整例子)
开发语言·数据库·人工智能·后端·golang