自己用 Go 语言写了一个命令行,感觉老是终端调用很麻烦,就想着包装成图形界面,后面看了以下 Go 语言有什么 Gui 框架
以前试过 Godot+Go 语言写界面,那界面叫一个粗糙,中途也尝试过 aardio+Go 语言方式,老是出错,没耐心放弃了
现在看了一下有:Fyne 、Walk 、GioUi 、wails , wails 还要会前端,我不会。。。。 Walk 不用会前端,好像很久没更新,放弃 Fyne 、GioUi 这两个可以开发 win 、linux 、mac 、安卓、ios ,还可以,后面弄了一下,各种出错
一来火,谷歌狂找替代,发现 autohotkey 这东西还不错,就想看这东西能不能调用我的命令行,包装成界面,并且编译成 exe ,发现还可以哟。 594Kb 这打包成 exe 才 1.3M ,运行后占用内存 2.5M ,Upx 压缩一下后,exe 占用 594kb ,妙啊
后面信心大涨,学着用 GioUi 重写,自己不够聪明各种报错,放弃。学着用 fyne 重写界面调用命令行,编译后 23Mb ,Upx 压缩后 8.61Mb ,运行占用内存 181.1Mb ,我天
还是写成命令行+authotkey 这种香,
有像我这样的兄弟吗?还有更骚的操作推荐吗?推荐一下,大家一起学习一下
![]() |
1
iorilu 1 天前
现在前端都用 ai 写阿, 尤其你把命令行的接口告诉 ai, 很容易整出一个
用 wails, 主要前端比较美观 |
![]() |
2
wakarimasen 1 天前
如果不需要分发直接起 HTTP server 然后访问 localhost:[port]
|
3
Tomatopotato 1 天前
可以看看 ahk 做出的界面吗
|
4
Tomatopotato 1 天前
@wakarimasen 这确实也是个思路。直接在 go 程序里写个服务器,写个简单前端网页,打包出 exe ,双击直接跳转浏览器,相当于用浏览器当 gui 了。
|
5
roundgis 1 天前 via Android
我以前用过 autoit 写界面
|
7
itakeman OP @Tomatopotato 懒得上传了,就写了一个控制智能开关的命令行,一个界面上带了开启关闭按钮,还有设置时间间隔、时间点定时开启关闭
|
9
itakeman OP @wakarimasen 浏览器访问也不是很方便,我感觉就想着写着界面,最好安卓、win 能一起就更好了
|
10
Donduck 1 天前
AHK 也不是一个跨平台的东西啊
|
11
itakeman OP @Donduck 所以我后面用 fyne 重写了,但是随随便便一个接近 hello world 的界面,运行起来都差不多 180Mb 运行内存了。。
|
![]() |
12
czyt 1 天前
我用 autoit
|
![]() |
13
iorilu 15 小时 46 分钟前
@itakeman 现在都 ai 搞得, 你不会还没用上 ai 写代码把, 学习下吧, 比你折腾其他玩意强
现在我基本明白了 搞 gui 即便就两条路 要么选择该语言原生 gui, 如果有的话, 要么用 webview+web 那套 其他都瞎折腾没意义 |
14
yyysuo 15 小时 25 分钟前
@itakeman go 里面写 api ,静态单文件 html 调用 api 。vibe coding ,只需要描述自己的需求就好了,报错就扔给 ai ,可以的。
|
![]() |
15
kasusa 14 小时 6 分钟前 ![]() |
![]() |
16
Luckykeeper 13 小时 37 分钟前
挺像的,前端苦手,最早是用的 Fyne ,后来去看了看 Godot + Go 的方案看着挺不错,稍微学了下感觉没有 Fyne 好看,于是去学了 Flutter ,现在是 Flutter + Go ,OP 不妨去试一下 Flutter ,或许有人说 Flutter 选了 Dart 作为开发语言是败笔,但是从我使用感受来看,我觉得 Dart 对于写 Go 的上手难度比 JS 那套低很多,界面做出来又好看(缺点是对上古浏览器的兼容以及加载速度这块,重一些),学会了 Flutter 还可以顺手写写客户端,很爽
实践:Devops ,用 Go + Fyne 写过类 Ansible 的自动部署工具( C/S ),Go + Flutter 写了 k8s 的容器管理和离线升级平台(C/S),Go + Flutter 写了 k8s 微服务(B/S)等等,都很好用,自从会写 Flutter 之后就把 Fyne 扔了,太香了,想打客户端就打客户端,想打 web 包就打 web 包 附一张图康康效果: https://youke1.picui.cn/s1/2025/09/24/68d35bb093a8b.png |
17
itakeman OP |
20
itakeman OP @Luckykeeper 为了跨平台,我学习了很多,go 语言也是因为这个才学习的。为了写 ui 我最早就是学了一部分 Flutter ,因为不是从事这行业,时间也有限。学到一半,后面没时间久了就慢慢放弃了,现在拿起来都没什么勇气,感谢你的鼓励,突然有那么点动力重新拾起来
|
21
itakeman OP @Luckykeeper 另外请教一下,Flutter + Go 交互是不是就 go 开启 web 服务,flutter 进行请求,如果这样感觉不是很完美
|