qt系列有很多包,大部分还在孵蛋中(很多蛋已经变化石了),比较成型的目前也就剩therecipe/qt了。熟悉qt并且能接受qt蛋疼的授权协议,可以用用看,坑不少,但是能用。

gtk系列够简单,有得是,但是跨平台有点虚,可以接受gtk的外貌的话,特定平台可以选用。

类electron系列也有不少,比较知名的asticode/go-astilectron,IPC部分有点问题,不知道现在解决了没有。说实话,上这种electron类的golang转制库,还不如直接上electron,js又不是很难学。

然后就是各种土制的html做界面系列:

有个看似有前途的,标准html做gui的zserge/webview。跨平台不错,但是为了迁就mshtml,可用的特性有限,这东东不用外挂chrome引擎,界面展现效果完全和用自带浏览器差不多,轻便,但是会遇到ie6时代一样的问题——渲染兼容性。如果想呈现现代html渲染的效果,可以看下它的姊妹项目zserge/lorca,这妹子跟electron的思路一样,需要chrome引擎配合,不轻便。提示一下,这两个库的星星很多,但是作者三天打鱼两天晒网,更新维护靠运气。

另外一个现在用的sciter-sdk/go-sciter。这货更狠,直接自己重新搞了一套代替js的tis,虽然跟js差不多,但是只专注于gui需要的部分,所以比较简洁。sciter-sdk是传统的gui界面库,c++出身,现在官方支持golang,它的前身是著名的htmlayout(不了解的自行搜索一下,某电脑管家就是用这东西做的,几乎每台电脑都装过)。具体界面效果自行去研究,反正只要html功夫到家,各种炫酷特效都能弄出来,而且跨平台效果不错。目前mac、windows平台用户没骂街,linux平台暂时没用多少户用,反馈不多。

sciter-sdk(并不是说go-sciter,那只是一个分支)的主力水电工是个老头儿,勤奋、精力旺盛、比恋爱中的小青年还能折腾,论坛秒回,一点改动就发更新包,我用的时候已经4000多次更新了。

友情提示一下:

golang做gui比较难驾驭。主要问题是gui的主线程锁定问题,winform里通过委托解决,qt有自己的信号槽,delphi里也有方案,唯独到golang这里麻烦。大部分用golang的用户,喜欢用golang的协程方式解决传统线程问题,但是这部分在用于gui的时候,会有驴唇不对马嘴的感觉,也能解决,但是需要比较深层的理解。

还有就是golang目前的设计重点还在后端,放前端露脸这种事,缺乏各种基础设施。目前还是要靠c做桥梁,因此产生的unsafe指针问题非常多。同理,跨平台也要有不同的编译工具链配合,那是另外一个很长很长的故事。

一句话,golang做gui不比c/c++简单,甚至更麻烦,其余自行脑补。

想省事,electron/js是个好主意,qt/c++也不错,不跨平台还有wpf/c#,不怕律师还有delphi,再不济lazarus/fpc也能凑合用,有钱有势搞javafx甚至swing也是自成一家,干嘛非得在golang树上吊死。