现在项目的一些代码是 go 写的,需要写 gui 。我以前只用 qt 写过 gui,不管是原始的 qt 还是 pyqt 。
现在的想法是:把 go 那部分代码静态编译成.a 库文件,然后用 qt 来导入这个库,调用库函数。
请教有经验的朋友们,这样的方案可行吗?
如果不可行。现在有推荐的 go gui 框架吗?
1
Hanggi 2021-07-06 06:36:09 +08:00
|
2
FindHao OP @Hanggi 还有个 libffi 。我主要想问的是,前面的部分。因为这些框架都是直接用 go 写的,我觉得不太方便。
|
4
jorneyr 2021-07-06 09:02:23 +08:00
Go 提供 Web 或者 RPC 服务,打包成一个可执行文件。
Qt 写界面,Qt 程序启动的时候启动 Go 程序开启服务,然后 Qt 程序和 Go 程序交互。 |
5
missdeer 2021-07-06 09:06:58 +08:00 2
|
6
FindHao OP @jorneyr #4 可执行文件暴露的东西太多了。如果别人直接找到了这个可执行文件,起码这部分功能就比较容易地被“破戒”了。不过可以作为备选的选择。谢谢
|
7
FindHao OP @missdeer #5 cool! 感谢。https://github.com/missdeer/KarenMeu/blob/master/utils/Makefile 这个 makefile 编译的 target 就是你的 go 部分代码对吧?然后 client 目录是 qt 写的界面。
|
8
missdeer 2021-07-06 09:21:37 +08:00
@FindHao 是的,单独写了个 Makefile 编译 go 代码生成.a,如果是给 msvc 用,还要多一步转成 dll/lib 以及处理一下 cgo 生成的.h,稍微麻烦点,gcc/clang 没这毛病
|
10
whitehack 2021-07-06 10:03:57 +08:00
如果只在 windows 平台 ,gui 要求不高的话 可以看看这个 https://github.com/whtiehack/wingui
|
11
wfhtqp 2021-07-06 10:17:00 +08:00
|
12
Vegetable 2021-07-06 10:23:46 +08:00 1
听我一句劝,如果你能,请使用现在的 GO 代码+http+electron 。别折腾 Go+GUI 了,没一个好用的。
|
13
DefoliationM 2021-07-06 10:40:28 +08:00
用 gRPC 这种,坚决不要用 https://github.com/therecipe/qt 这个,超级难用,编译巨慢。
|
15
BeautifulSoap 2021-07-06 11:06:41 +08:00 via Android
最近在用 go 写 gui 还试过几个库的血泪提醒大家,千万别想不开用 go 写 gui
|
16
lizhenda 2021-07-06 12:26:23 +08:00
我用过 https://github.com/lxn/walk 这个 go 的 Windows GUI 库写了个程序,写界面特别蛋疼,限制很大,只能是原生 win 的界面。所以还是老实让 go 来写服务吧,electron 或者其它专业的图形化引擎来写 GUI 吧。
|
17
dongtingyue 2021-07-07 09:38:37 +08:00
也可以另辟蹊径,使用 web,然后把前端打包进程序。限制条件就是必须有浏览器。好处是页面可以很酷炫
|
18
ilovesusu 2021-07-11 19:32:25 +08:00
惊了 竟然没有人提 Fyne https://github.com/fyne-io/fyne
|
19
MrJing1992 2021-08-13 21:08:55 +08:00
go 不太擅长吧
如果你会前端,可以用: https://www.electronjs.org/ ,跨平台 |