Golang 写桌面 GUI 应用的体验

2021-08-08 23:37:50 +08:00
 wangbenjun5

之前闲着无事,用 Go 的一个开源 GUI 库 fyne 撸了一个小工具,就是一个通过抓取虎牙直播源地址,并且调用本地的播放器比如 MPV 看直播的东西。

刚开始,觉得 Go 写 GUI 还挺有意思,但是写着写着发现想实现一个稍微复杂的 UI 和交互,真的很难。。。fyne 这个库本身的自带的组件功能很少,简单东西可以搞一搞,稍微复杂点无能为力了。

后来又去看了看一个 QT 绑定库 therecipe/qt,以前没用过 qt,发现这个库贼难用,一个方法点进去连注释都没有,全是 rpc 调用,我都看懵了,找了下 QT 的文档,全是 C++的写法,和这个库的调用又不是完全一样的,折腾了一下,看了那一些 example,又是 QML 啥的,搞蒙了,总结就是发现没法用,除非你以前就会 QT 这一套东西另说。

总结,Go 在开发桌面 GUI 应用这块依然是个玩具,自娱自乐玩一玩可以。。。桌面原生 GUI 开发还得看 C++啊

14976 次点击
所在节点    程序员
42 条回复
zgcwkj
2021-08-09 00:46:40 +08:00
C#:???
piping
2021-08-09 00:58:10 +08:00
桌面 GUI 的未来市场份额很大一部分要归 electron 了,用不着 C++
Trim21
2021-08-09 01:23:31 +08:00
不如起个 http server 再写个 Web ui,go 写 gui 真的折磨…
janxin
2021-08-09 07:17:36 +08:00
fyne 太简单,写个小工具还行,复杂的就全部需要自己封装

Qt 一直都有这样,无论什么语言开发,你能找到的大部分都是 C++资料,因为这是 Qt 主流开发语言。
yekern
2021-08-09 08:10:02 +08:00
wails
webview/webview + socket + sqweek/dialog
跨平台啊 用系统内核 而不是像用 electron 打包出来那么大,做些常见应用还是比较简单的
yekern
2021-08-09 08:13:00 +08:00
zjsxwc
2021-08-09 09:06:52 +08:00
qt 都流行用 qml 写界面,也就是 js 。所以 qt 现在等于 js 。
hatsuyuki
2021-08-09 09:17:57 +08:00
@yekern Rust 方向还有个 tauri
gongym
2021-08-09 09:27:37 +08:00
govcl
labulaka521
2021-08-09 09:50:16 +08:00
gioui
fireleaves
2021-08-09 09:52:13 +08:00
go walk
nieyujiang
2021-08-09 09:54:16 +08:00
硬让我选我会选 qt
wangkai0351
2021-08-09 09:59:51 +08:00
electron 打包出来的东西很大+1,颠覆了 Windows 对其客户端应用的“期待”
rekulas
2021-08-09 10:04:53 +08:00
如果不考虑跨平台的话,要不要试试 miniblink,内存占用几 M-几十 M,直接 HTML5 书写,跟 go 交互也简单
https://github.com/del-xiong/miniblink
ly841000
2021-08-09 10:06:16 +08:00
webview 写出来的应用无论是手机还是 PC 在流畅度、性能、资源占用、耗电方面都是垃圾,安卓手机内存搞到 8G 、12G,比主流 PC 还高,重量变半斤,webview 功不可没
debuggerx
2021-08-09 10:09:48 +08:00
讲个笑话:Flutter 刚出来那会儿,网上好多人认为 Flutter 不用 go 写是败笔……
虽然总有大佬会说语言只是工具,但是不可否认,不同语言的语言特性导致其各有自己擅长和不适合的领域及应用场景
such
2021-08-09 10:11:18 +08:00
c++永远的神
ipwx
2021-08-09 10:15:10 +08:00
@debuggerx 你永远叫不醒 go 神教
xgfan
2021-08-09 10:17:04 +08:00
fyne 性能真的是太差了。号称原生,跑起来比 webkit 慢多了。
jingslunt
2021-08-09 10:18:38 +08:00
大厂都在写 gui 怎么到这里就不适用了?
https://golangrepo.com/repo/ocornut-imgui

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/794478

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX