Golang Go语言中的 UI 库

发布于 1周前 作者 songsunli 来自 Go语言

Golang Go语言中的 UI 库

  • 希望是可以跨平台 加移动端 一锅端
  • 看了几个
  • fyne 在我这里跨平台编译不过去 提示 x 的包无法 get 超时 然而 单独 get 么问题 VPS 跑一下各种依赖也没搞好
  • gioui 这个编译起来很方便 也没出什么毛病 然而写个 HelloWorld 要那么多 ...复杂性和效率...
  • go-sciter?这是个 HTML CSS 的 不知道放到安卓 iOS 能不能跑 。。。。 心累啊

更多关于Golang Go语言中的 UI 库的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

41 回复

go 安装依赖需要科学出国

更多关于Golang Go语言中的 UI 库的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


fyne 玩过一小段时间,坑太多了弃之

使用 go 1.13+ 设置一些 七牛云代理

现在写 UI go 只能说基于 webaseembly 的能画个 hello world 就差不多了,wasm 本身就不成熟,go 写 UI 更不成熟,俩一碰就……

HTML/CSS/JS 不好吗?

直接调 chrome 不好么,node 那套不也是跑 webkit 么。

依赖问题,,,你需要 go mod

fyne 的坑是巨多 最近才接触的,马上弃坑了,不知道作者背景,我怀疑是应届生搞得。居然还有 7k 的 star…

如果你非要用 golang 搞 GUI,可以试试这个。

https://github.com/therecipe/qt

科学出国不是问题 VPS 都搞过 不好使 好吧 谢谢回复 是不成熟然而别的不会 凑合吧 node 太重了 一直在用 go modairplayxcom 我也是感觉这个星标高的离谱和实际体验不成比例 之前装个 update 一次 按了个 Ctrl 加 C 结果什么都没了 6G 多的文件就这样白搞了一次…

可以具体举例说说什么样的坑?

试试 govcl 或者 wingui,虽然我也没试过

G3N,是一个 3D 引擎,也提供了 GUI 相关的组件。

https://github.com/g3n/engine

https://github.com/g3n/g3nd


1.用到的所有组件貌似都木有 scroll 的功能,比如文本框输出超过当前窗口宽度会自动拉伸当前窗口,必须指定一个类似 NewGroupWithScroller 父容器。
2.当 tab 容器在 NewGroupWithScroller 中使用时候,指定的 tabitem 在超出窗体大小时整个 tabitem 会出现整体滚动现象,而我的需求是当前 tabitem 列表与所在的 CanvasObject 滚动分离。
3.tab 容器动态删除当前 tabitem 后,必须指定 select 一个已存在的其他 tabitem,不然会 panic,作者并未做动态响应。
4.当删除 tab 容器所有 tabitem 时候,必须隐藏掉当前 tab 容器,注意是隐藏。有个场景就是 tab 容器包含子容器时候,父容器被删除完毕后,子容器其实是会在画布下层依然在工作,因为作者并未实现销毁功能。
5.tabitem 没有点击事件,这也是我需要的功能。
6.文本域在粘贴包含 Unicode 字符时候会 panic,已经提了,下一版会修正。
7.文本域的粘贴会把 tab 制表符相关的内容替换为方框类似的不正常的字符。
8.高分屏的适配,可能会在未来解决。

以上是我目前遇到的坑点,可能是我使用的姿势不对,现在我的项目基本停摆了,考虑换掉。

有移动端?

这叫非主流编程吗?

如果可以 webview 套壳的话考虑下 GopherJS/vecty 啥的?

使用 golang-gotk3 和 glade 写图形界面程序,完美! https://github.com/mrccnt/gotk3-glade-example

还不如做成库用 Flutter 写 UI。

建议放弃,别问为什么

感谢 glade 不会用

我自己写了个小东东 想弄个 UI 界面 起码支持移动端 现在看来支持好的只有 gioui 然而他家的写起来看着好复杂 (我没写过)

有折腾的心,没有折腾的性

不知道你说的性 具体指哪方面 如果说经验的话 我确实没有

go-sciter 其实还好,目前我一个产品用在 win 和 mac 效果都 ok, 但是 win 下面跑的时候, 挂着挂着就未响应了, 到现在都没能解决。

有啥想不开用 go 写 ui ?

歪个 如果不跨平台 可以考虑下这个 chrome 内核渲染
https://github.com/del-xiong/miniblink

不跨平台的一抓一大片

这个不是官方镜像

官方镜像不是都 Q 了吗?

请问找到了吗,我也想找个 pc 移动端一窝端的🤣

#36 govcl 还凑合

我也遇到过 sciter 在 win 下未响应的问题,发现 64bit 才会出现这个问题,现在我直接编译 32bit 的,没问题了

哈哈哈,其实,你在 init 加上 runtime.LockOSThread(),就不会无响应了。gayhub 有人提出来了,是 golang 的携程会在多个线程乱跳,导致 ui 操作也跳到别的线程了。。

请问各位大佬,有类似 java 中 easyui 这样的 web ui 库吗,后端懂些 html 的也能写些工具。

在Golang(Go语言)中,UI库的选择对于开发图形用户界面(GUI)应用至关重要。以下是一些Go语言中值得关注的UI库:

  1. Fyne:这是一个功能强大且易于使用的Go语言GUI库。Fyne提供了丰富的组件和布局选项,支持创建复杂的用户界面。它还支持数据绑定和高级小部件,如表和列表,使得开发更加高效。此外,Fyne的文档和示例代码也非常完善,有助于开发者快速上手。
  2. Go-GTK:这是GTK+图形用户界面工具包的Go语言绑定。GTK+是一个广泛使用的开源GUI库,提供了丰富的组件和强大的功能。通过Go-GTK,开发者可以在Go语言中直接使用GTK+的组件和特性,创建跨平台的GUI应用。
  3. Walk:Walk是一个纯Go实现的Windows GUI库。它提供了与Windows原生组件相似的界面和交互方式,使得开发者可以轻松地创建Windows平台的GUI应用。

在选择UI库时,建议根据项目需求、目标平台、组件丰富度、文档完善度以及社区支持等因素进行综合考虑。同时,也可以尝试多个库,以便找到最适合自己项目的UI库。以上库都有其独特的优势和适用场景,选择时需谨慎评估。

回到顶部