本文作者分享了将Go语言编写的命令行工具包装成图形界面的曲折经历。从尝试Godot+Go、aardio+Go,到Fyne、Walk、GioUi等GUI框架,均因界面粗糙、兼容性问题或频繁报错而放弃。最终,作者发现AutoHotkey能够方便地调用命令行并编译成轻量级EXE,实现了高效的GUI化。尽管尝试用GioUi和Fyne重写,但因技术限制和资源占用问题,作者回归并肯定了命令行+AutoHotkey的方案,并寻求更优的解决方案。
🚀 **GUI框架尝试与挑战**: 作者尝试了多种Go语言GUI框架,如Godot+Go、aardio+Go、Fyne、Walk和GioUi。这些尝试普遍面临界面粗糙、兼容性问题、频繁报错等挑战,导致开发过程中断和放弃。
💡 **AutoHotkey的轻量级解决方案**: 在尝试多种GUI框架失败后,作者发现AutoHotkey能够高效地调用命令行工具,并将其打包成极小的可执行文件(UPX压缩后仅594KB),且运行时内存占用极低(2.5MB),展现了其作为命令行工具GUI化的有效且经济的方案。
⚖️ **Fyne/GioUi的资源消耗对比**: 作者使用Fyne重写界面时,编译后的可执行文件高达23MB,UPX压缩后仍有8.61MB,运行时内存占用更是达到181.1MB,与AutoHotkey方案形成鲜明对比,凸显了其资源消耗的巨大劣势。
🤝 **寻求更优的GUI化方案**: 作者肯定了命令行+AutoHotkey的组合在效率和资源占用上的优势,并积极寻求其他“更骚的操作”或更优的GUI化方法,希望与社区共同学习和探讨。
自己用 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 这种香,
有像我这样的兄弟吗?还有更骚的操作推荐吗?推荐一下,大家一起学习一下