码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境


    目录

    • 在Windos 10专业版搭建Fyne(Go 跨平台GUI)开发环境
      • 一 Fyne 和 MSYS2简介
        • 1.1 Fyne
        • 1.2 MSYS2
      • 二 安装 MSYS2
        • 2.1 下载MSYS2
        • 2.2 安装
        • 2.3 环境变量设置
        • 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:
    图1
    安装完成,如图2:
    图2
    启动UCRT64环境:
    图3
    执行以下安装命令:

    pacman -Syu
    pacman -S git mingw-w64-x86_64-toolchain
    pacman -S mingw-w64-ucrt-x86_64-gcc
    gcc --version
    
    • 1
    • 2
    • 3
    • 4

    各环境的差别,如图4:
    图4

    2.3 环境变量设置

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

    图5
    UCRT64环境变量PATH加入Go的bin目录:
    图6
    执行:

    source .bashrc
    go version
    go install fyne.io/fyne/v2/cmd/fyne@latest
    
    • 1
    • 2
    • 3

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

    2.4 检测安装环境

    下载Fyne Setup

    解压后双击exe文件,显示如下则环境配置成功!
    图5
    注意:使用Goland进行开发时,编译环境需加入:

    CC=gcc;CGO_ENABLED=1;GOARCH=amd64;GOOS=windows
    
    • 1

    否则报错:

    imports github.com/go-gl/gl/v3.2-core/gl: build constraints exclude all Go files in E:\workspace\go\...
    
    • 1

    中文显示乱码解决方法:
    在mian包中init函数加入:

    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
    		}
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    Windows下打包:

    fyne package -os windows -icon app.jpg
    
    • 1

    三 参考文档

    3.1 Fyne 官方帮助文档

  • 相关阅读:
    Python操作串口通信
    QCustomPlot绘图类详解(大白话)
    【MySQL 读写分离】Sharding JDBC + Spring boot 实现数据库读写分离的登录 Demo
    软件供应链的漏洞及攻击类型
    MySQL 索引介绍和最佳实践
    复选框 全选or取消全选
    直接激光雷达里程计:基于稠密点云的快速定位
    Effective C++条款27:尽量少做转型动作(Minimize casting)
    商品推荐系统实战:基于AFM推荐算法的推荐系统实现 代码+数据
    【经典文献】水下光学和声学成像:融合的时代?最新技术概述
  • 原文地址:https://blog.csdn.net/solaraceboy/article/details/132909588
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号