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

go 如何与 qt 结合?

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