The Go Programming Language
› http://golang.org/
› Go Playground
Go Projects
› Revel Web Framework
FindHao

go 如何与 qt 结合?

  •  
  •   FindHao · Jul 6, 2021 · 5308 views
    This topic created in 1947 days ago, the information mentioned may be changed or developed.

    现在项目的一些代码是 go 写的,需要写 gui 。我以前只用 qt 写过 gui,不管是原始的 qt 还是 pyqt 。

    现在的想法是:把 go 那部分代码静态编译成.a 库文件,然后用 qt 来导入这个库,调用库函数。

    请教有经验的朋友们,这样的方案可行吗?

    如果不可行。现在有推荐的 go gui 框架吗?

    19 replies  •  2021-08-13 21:08:55 +08:00
    Hanggi
    Hanggi
    Jul 6, 2021
    1
    FindHao
    FindHao
    OP
    Jul 6, 2021 via Android
    2
    @Hanggi 还有个 libffi 。我主要想问的是,前面的部分。因为这些框架都是直接用 go 写的,我觉得不太方便。
    techphoebe
    techphoebe
    Jul 6, 2021 via iPhone
    3
    @Hanggi 没一个好用的
    jorneyr
    jorneyr
    Jul 6, 2021
    4
    Go 提供 Web 或者 RPC 服务,打包成一个可执行文件。
    Qt 写界面,Qt 程序启动的时候启动 Go 程序开启服务,然后 Qt 程序和 Go 程序交互。
    missdeer
    missdeer
    Jul 6, 2021❤️2
    5
    FindHao
    FindHao
    OP
    Jul 6, 2021
    6
    @jorneyr #4 可执行文件暴露的东西太多了。如果别人直接找到了这个可执行文件,起码这部分功能就比较容易地被“破戒”了。不过可以作为备选的选择。谢谢
    FindHao
    FindHao
    OP
    Jul 6, 2021
    7
    @missdeer #5 cool! 感谢。https://github.com/missdeer/KarenMeu/blob/master/utils/Makefile 这个 makefile 编译的 target 就是你的 go 部分代码对吧?然后 client 目录是 qt 写的界面。
    missdeer
    missdeer
    Jul 6, 2021
    8
    @FindHao 是的,单独写了个 Makefile 编译 go 代码生成.a,如果是给 msvc 用,还要多一步转成 dll/lib 以及处理一下 cgo 生成的.h,稍微麻烦点,gcc/clang 没这毛病
    FindHao
    FindHao
    OP
    Jul 6, 2021
    9
    @missdeer #8 mingw 有问题吗?我是在 windows 下用的 mingw
    whitehack
    whitehack
    Jul 6, 2021
    10
    如果只在 windows 平台 ,gui 要求不高的话 可以看看这个 https://github.com/whtiehack/wingui
    Vegetable
    Vegetable
    Jul 6, 2021❤️1
    12
    听我一句劝,如果你能,请使用现在的 GO 代码+http+electron 。别折腾 Go+GUI 了,没一个好用的。
    DefoliationM
    DefoliationM
    Jul 6, 2021
    13
    用 gRPC 这种,坚决不要用 https://github.com/therecipe/qt 这个,超级难用,编译巨慢。
    missdeer
    missdeer
    Jul 6, 2021
    14
    @FindHao mingw 是用 gcc/clang,所以没这毛病
    BeautifulSoap
    BeautifulSoap
    Jul 6, 2021 via Android
    15
    最近在用 go 写 gui 还试过几个库的血泪提醒大家,千万别想不开用 go 写 gui
    lizhenda
    lizhenda
    Jul 6, 2021
    16
    我用过 https://github.com/lxn/walk 这个 go 的 Windows GUI 库写了个程序,写界面特别蛋疼,限制很大,只能是原生 win 的界面。所以还是老实让 go 来写服务吧,electron 或者其它专业的图形化引擎来写 GUI 吧。
    dongtingyue
    dongtingyue
    Jul 7, 2021
    17
    也可以另辟蹊径,使用 web,然后把前端打包进程序。限制条件就是必须有浏览器。好处是页面可以很酷炫
    0x567
    0x567
    PRO
    Jul 11, 2021
    18
    惊了 竟然没有人提 Fyne https://github.com/fyne-io/fyne
    MrJing1992
    MrJing1992
    Aug 13, 2021
    19
    go 不太擅长吧
    如果你会前端,可以用: https://www.electronjs.org/ ,跨平台
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4953 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 71ms · UTC 06:18 · PVG 14:18 · LAX 22:18 · JFK 01:18
    ♥ Do have faith in what you're doing.