GO语言学习笔记(二) - GUI For Go(基于Electron)

本文记录了使用GO语言结合Electron构建GUI应用的过程,包括遇到的问题及解决方案,涉及go-astilectron库的配置和使用,以及bundler安装与应用打包的详细步骤。
摘要由CSDN通过智能技术生成

GO语言学习笔记(二) - GUI For Go(基于Electron)

前言

网上找了一下Golang的GUI,然后找到了一个基于Electron的介绍。
一开始觉得应该比较简单,但是还是碰到各种坑。
所以将碰到的一些坑和解决方法在这里记录一下。

使用Eletron作为Golang GUI的文章链接:
https://studygolang.com/articles/12065?fr=sidebar

简介

基于Electron,使用go-astilectron作为Golang和Electron的连接媒介。

go-astilectron Github地址:
https://github.com/asticode/go-astilectron

go-astilectron示例 Github地址:
https://github.com/asticode/go-astilectron-demo

配置

在GOPATH下新建 src, pkg, bin三个文件夹

执行Demo提供的命令

Github上Demo的readme中的命令

安装示例

下面的命令都是在PowerShell6.1.0-preview.1中执行的
操作过程中忘了关掉VPN了,在不翻墙的情况下不能保证一定能成功。

  • 下载代码
go get -u github.com/asticode/go-astilectron-demo/...

然后就出错误了。
错误信息如下:

PS C:\Program Files\PowerShell\6.1.0-preview.1> go get -u github.com/asticode/go
-astilectron-demo/...
package github.com/asticode/go-astilectron-demo
        imports golang.org/x/crypto/ssh/terminal: unrecognized import path "gola
ng.org/x/crypto/ssh/terminal" (https fetch: Get https://golang.org/x/crypto/ssh/
terminal?go-get=1: dial tcp 216.239.37.1:443: connectex: A connection attempt fa
iled because the connected party did not properly respond after a period of time
, or established connection failed because connected host has failed to respond.
)
PS C:\Program Files\PowerShell\6.1.0-preview.1>

解决方法:

1 在GOPATH目录下的src目录新建目录golang.org,在golang.org目录下新建目录x,并进入到新建的目录x中。

PS C:\Program Files\PowerShell\6.1.0-preview.1> cd $GOPATH
PS C:\Users\Administrator> cd go
PS C:\Users\Administrator\go> cd src
PS C:\Users\Administrator\go\src> mkdir golang.org
略(此行非命令)
PS C:\Users\Administrator\go\src> cd golang.org
PS C:\Users\Administrator\go\src\golang.org> mkdir x
略(此行非命令)
PS C:\Users\Administrator\go\src\golang.org> cd x
PS C:\Users\Administrator\go\src\golang.org\x>

2.执行命令下载crypto。
注:前提是已安装Git。

git clone https://github.com/golang/crypto.git

执行过程

PS C:\Users\Administrator\go\src\golang.org\x> git clone https://github.com/gola
ng/crypto.git
Cloning into 'crypto'...
remote: Counting objects: 4615, done.
remote: Compressing objects: 100% (32/32), done.
remote: Total 4615 (delta 8), reused 11 (delta 3), pack-reused 4580
Receiving objects: 100% (4615/4615), 3.64 MiB | 43.00 KiB/s, done.
Resolving deltas: 100% (2933/2933), done.
PS C:\Users\Administrator\go\src\golang.org\x>
  • 继续执行下载代码的命令
go get -u github.com/asticode/go-astilectron-demo/...

然后继续出错。

PS C:\Program Files\PowerShell\6.1.0-preview.1> go get -u github.com/asticode/go
-astilectron-demo/..
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Go语言编写GUI应用程序时,有很多可用的GUI框架可以选择,每个都有其独特的优势和应用场景。下面是几个流行的GUI工具及库: ### 1. **GTK+ 和 GTK/GTK3** GTK+ 是一套跨平台的图形用户界面(GUI)工具包,支持多种操作系统包括Linux、Windows和macOS。GTK+ 提供了丰富的组件集,如按钮、标签、文本框等,并且支持创建复杂的应用程序布局。对于希望在多平台上构建一致性的GUI应用的开发者来说,GTK+ 是一个很好的选择。 #### 使用方式: - 在 Linux 系统上,通常会安装 GTK+ 开发环境作为依赖。 - 在 macOS 上,你可以通过 Homebrew 安装 gtk+。 - Windows 用户则可以从官方网站下载预编译的库和工具链。 ### 2. **Fenix GUI Framework** Fenix 是一个基于 GTK+ 的Go语言GUI框架。它提供了一套简洁的API,使得开发者可以快速构建现代化的UI。相比GTK+原生的API,Fenix简化了一些复杂度,使得入门更为容易。 #### 使用方式: - Fenix 需要在项目中作为一个外部依赖引入。 - 使用类似于Python的面向对象的方式构建窗口、控件等。 ### 3. **GfxGo** GfxGo 是另一个基于GTK+的Go语言GUI库,旨在提供一种易于使用的界面构建体验。它强调的是效率和性能,适合那些追求高交互性和响应速度的开发者。 #### 使用方式: - 类似于Fenix,GfxGo 也需要添加到项目依赖中。 - 构建界面和逻辑时,GfxGo 提供了一系列便捷的API。 ### 4. **Electron Go** 如果想要开发跨平台的桌面应用并且利用已有的Web前端技能,Electron Go 可能是一个不错的选择。Electron 是由Node.js团队维护的一个开源项目,允许开发者使用HTML、CSS和JavaScript来构建桌面应用。 #### 使用方式: - 需要额外学习Electron框架和Webpack等构建工具。 - 对于不熟悉前端技术的开发者来说,可能需要花费更多的时间和精力来适应。 ### 相关问题: 1. **GTK+ 和 Fenix 的主要区别是什么?** - GTK+ 更基础,提供更多自定义选项和低级API,适用于需要高度定制化界面的应用。 - Fenix 则封装了许多GTK+的基本功能,提供更高的抽象级别,使其更易上手,适合快速原型开发。 2. **在选择GUI库时应该考虑哪些因素?** - 应用需求(性能、安全性、用户界面复杂性) - 学习曲线(库的文档质量、社区活跃程度) - 社区支持和生态系统 - 与其他库和框架的兼容性 3. **如何集成Electron Go与现有的Web应用?** - 通过将Web应用打包成渲染进程,利用Node.js API与本地Go应用交互。 - 使用Electron框架的特性,如加载本地文件、访问系统API等。 - 需要注意跨域问题,确保安全设置允许Web应用与本地Go应用之间的通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值