目前 Go 语言主要活跃在区块链、云计算、命令行工具和后端服务等领域。这些领域基本上和 GUI 关系不大。近来出现了很多跨平台的 Go GUI 项目。虽说用井喷之势形容有些过了,但是的确有加速的迹象。难道 Go 语言将要开辟出另一大块疆土?
忙中偷闲,整理了一份目前 GUI/图形 /图像相关的 Go 项目列表。见下。欢迎补充。
dlgs是一个跨平台的显示对话框和输入框的 Go 代码库。
glfw是一个 GLFW3 绑定库。
go-mobile支持移动平台应用开发( Android 和 iOS )。(其中包含OpenGL ES 2.0 和 ES 3.0 绑定库。)
go-sdl2是一个 SDL2 绑定库。
go-gtk是一个 GTK2 绑定库。
gotk3是一个 GTK+3 绑定库。
GXUI,Google 员工出品,但已经停止维护很久了。
qt是一个 qt 绑定库。
shiny是一个跨平台的 UI 库。貌似荒废了。
systray是一个跨平台的系统托盘通知图表和菜单库。
trayhost是另一个跨平台的系统托盘通知图表和菜单库。
ui提供了原生 GUI 绑定。
Walk是一个"Windows Application Library Kit"绑定。
w32.go是一段使用 Windows 系统调用生成 GUI 的小例子。
XGB是一个 X 系统绑定。
xgbutil是一个 X 系统绑定工具库。
go-astilectron基于 Electron,使用 HTML/JS/CSS 来构建跨平台 GUI 应用。
go-sciter是一个 Sciter 绑定。
gowd基于 nwjs,使用 HTML/JS/CSS 来构建跨平台 GUI 应用。
Wails另用原生浏览器,使用 HTML/JS/CSS 来构建跨平台 GUI 应用。
webview基于 WebKit,使用 HTML/JS/CSS 来构建跨平台 GUI 应用。
duit是一个纯 Go 跨平台 UI 库。
Fyne使用 OpenGL 实现立即模式跨平台 GUI。
gi是一个基于场景图的 2D 和 3D GUI 库。
Gio是一个轻便的立即模式跨平台 GUI。支持:iOS/tvOS, Android, Linux (Wayland), macOS, Windows 和 browsers (Webassembly/WebGL)。
go-flutter实现了 Flutter Embedding API。
goey(这个的介绍没看太明白,各位自个儿研究一下。)
gui是一个并发 GUI 库。
imgui-go是一个 Dear ImGui 绑定炉。
nk是一个 nuklear 绑定库。(另一个:nucular)
d3d9是一个 Direct3D9 绑定。
gl是一个 OpenGL 绑定。(另外GLHF对 gl3.3 进行了更接近于 Go 风格的包装。)
vulkan是一个 Vulkan 绑定。
gg是一个纯 Go 矢量图形库。
go-cairo是一个 cairo 绑定。
go-skia是一个 skia 绑定。
svgo用来生成 SVG 1.1 规范的 svg 文件。
freetype是一个 Freetype 字体渲染器光栅化 Go 库。
pixfont是一个位图字体库。
请访问Awesome Go获取列表。
image标准库。
官方image补充库。
请访问Awesome Go活度更多。
本文首发在微信Go 101公众号,欢迎各位转载本文。Go 101公众号将尽量在每个工作日发表一篇原创短文,有意关注者请扫描下面的二维码。
1
HarveyLiu 2019-05-19 03:02:51 +08:00 via Android
很多项目需要重构,服务器硬件也在更新,跨平台完美的 gui 库,目前还没有吧,简单界面还是可以的,另外时间学习新的 gui 库,成本也不小,不 95%完美兼容成熟的情况下没人花这个学习成本吧?单线程最强的语言还是 Nim 吧😄
|
2
congeec 2019-05-19 05:18:04 +08:00 via iPhone
看应用,而不是库
|
3
hotsymbol 2019-05-19 09:22:07 +08:00
好几年前就有了。
|
4
LSvKing 2019-05-19 09:45:43 +08:00 via Android
没有一个具备高可用完整性的
|
5
loading 2019-05-19 09:56:46 +08:00
这些库和月球表面差不多,全是坑。
|
6
chenhui7373 2019-05-19 10:00:55 +08:00
gopherjs
go 绑定 qt go 绑定 flutter GoSX 模仿 JSX,反正都要编译了 ... |
7
file0X0088 2019-05-19 10:14:09 +08:00
GOlang 不需要 UI
|
8
Yourshell 2019-05-19 10:42:42 +08:00
看到最后二维码就明白了
|
9
p1gd0g 2019-05-19 10:59:43 +08:00
之前用 andlabs 写啦个七牛客户端,图像性能有点差,能看到拖拽。
包括官方示例有能看到拖拽。 |
10
hanxiV2EX 2019-05-19 11:09:19 +08:00
一个 system tray 开启后台,用 rest api 把接口交给浏览器。
|
12
nicevar 2019-05-19 12:04:14 +08:00 via Android
目前这些真的没一个能真正用得上的,现阶段适合写个 hello world 的窗体, 这方面感觉 flutter 比较有优势,达到 Qt 的成熟度还要很多年
|
14
JohnLou 2019-05-19 12:15:56 +08:00 via Android
说得好,我用 flutter
|
15
liulaomo OP @LSvKing 好几个绑定都是相当成熟的,包括 qt, sdl, glfw, gtk2, imgui, nuklear
|
16
p1gd0g 2019-05-19 19:29:20 +08:00
|
18
wsseo 2019-05-20 00:53:28 +08:00
哪个比较成熟
|
19
wenzhoou 2019-05-20 07:50:45 +08:00 via Android
我觉得最好的实践还是起 Web 服务。然后打开浏览器。参考 go 的帮助文档的做法。
|