Go GUI Awesome
约 2 分钟阅读
标签:资源精选
选择逻辑
- fyne - 如果限制能满足
- libui - 如果不需要基于 web 的界面
- 打开 本地浏览器 - 使用 tray
- sciter - 集成浏览器,基础 web 功能
- walk - 如果只需支持 windows 且界面简单
- go-astilectron - 完整 web 功能 + 扩展
Note
- macOS 要求在主线程操作 GUI - 多个 UI 库无法同时使用
- 参考
- golangr.com/gui链接golangr.com/guifyne - 如果限制能满足 · libui - 如果不需要基于 web 的界面 · 打开 本地浏览器 - 使用 tray · sciter - 集成浏览器,基础 web 功能 · walk - 如果只需支持 windows 且界面简单 · go-astilectron - 完整 web 功能 + 扩展笔记:Go GUI Awesome
Native
- golang.org/x/exp/shinyGo 包golang.org/x/exp/shinyGo
- fyne-io/fyneGitHubfyne-io/fynefyne-io/fyne · MIT, Golang · 跨平台 GUI 库 - 组件 · Material Design 风格 · 参考 · Pre-built Mesa3D drivers for Windows · 问题 · 必须要有 OpenGL 2.0+ 环境 - Windows Server 环境不一定能用笔记:fyne
- #283GitHub Issuefyne-io/fyne#283 - tray 支持
- OpenGL 2.0+
- 需要有显卡
- gio
Immediate mode GUI programs in Go for Android, iOS, macOS, Linux, FreeBSD, OpenBSD, Windows, and WebAssembly
- used by Tailscale
- gioui/gioGitHubgioui/gio
- immediate mode user interfaces
Binding
- therecipe/qtGitHubtherecipe/qt - QT 绑定
- Go, JavaScript/TypeScript, Dart/Flutter, Haxe, Swift
- andlabs/uiGitHubandlabs/uislint-ui/slint · GPLv3, C++, Rust, JS · lvgl/lvgl · andlabs/ui · unoplatform/uno · ocornut/imgui · Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies笔记:GUI Awesome
- andlabs/libuiGitHubandlabs/libui 的 Go 绑定
- gotk3/gotk3GitHubgotk3/gotk3
- mattn/go-gtkGitHubmattn/go-gtk - 不活跃
- ying32/govclGitHubying32/govcl
Webview
- wailsapp/wails笔记wailswailsapp/wails · MIT, Go · 基于 Webview 的应用封装 · WML · Windows - WebView2 · macOS - Safari · Linux - gcc,libgtk3,libwebkit · 可使用 upx 压缩, nsis 打包打开:/notes/web/framework/wails
- webview/webviewGitHubwebview/webview - 基于本地浏览器
- 依赖 DLL
- #366GitHub Issuewebview/webview#366 - Embed DLLs?
- 依赖 DLL
- asticode/go-astilectronGitHubasticode/go-astilectron - 基于 Electron
- Go binding asticode/astilectronGitHubasticode/astilectron - Electron API over TCP
- sciter-sdk/go-sciterGitHubsciter-sdk/go-sciter
- 嵌入式 HTML/CSS/Script 引擎 - 不依赖浏览器
- 目前只允许动态链接 - 8-15 MB
Windows
Keyboard
- micmonay/keybd_eventGitHubmicmonay/keybd_event - simulates the key press on a keyboard
Toolkit
- sqweek/dialogGitHubsqweek/dialog cross-platform dialog API for go-lang
- pkg/browserGitHubpkg/browser - 打开浏览器
- getlantern/systrayGitHubgetlantern/systray
- 跨平台 tray
- 问题
- Quit 会退出程序而不是退出 loop
- 主 Loop 会一直运行,无法退出
- zserge/trayGitHubzserge/tray
- C 语言跨平台 tray
Misc
- fogleman/ggGitHubfogleman/gg 2D rendering in Go
Game
- hajimehoshi/ebitenGitHubhajimehoshi/ebiten
2D game library
- Apache-2.0
- faiface/pixelGitHubfaiface/pixel
hand-crafted 2D game library
- MIT
- EngoEngine/engoGitHubEngoEngine/engo is an open-source 2D game engine written in Go.
- azul3d/engineGitHubazul3d/engine 3D game engine written in Go!
- go-talks.appspot.com/github.com/guregu/slides/comiket/comiket.slide
- g3n/engineGitHubg3n/engine
- Go 3D Game Engine
- oakmound/oakGitHuboakmound/oak
- pure Go game engine
Mobile
- golang/mobileGitHubgolang/mobilegolang/mobile · Project Wiki · Go! Golang and Gomobile vs Android+Kotlin and IOS+Swift · React Native: Why and How to Build Your Native Code in Go笔记:Go Mobile Golang mobile support cross-platform gl binding
关联信息
反向链接、本文链接的其他页面和外部资料。
站内链接
- wails笔记 · wailsapp/wails
wailsapp/wails · MIT, Go · 基于 Webview 的应用封装 · WML · Windows - WebView2 · macOS - Safari · Linux - gcc,libgtk3,libwebkit · 可使用 upx 压缩, nsis 打包
参考资料
GitHub29 条
- andlabs/libuigithub.com/andlabs/libui
- andlabs/uigithub.com/andlabs/ui
- asticode/astilectrongithub.com/asticode/astilectron
- asticode/go-astilectrongithub.com/asticode/go-astilectron
- azul3d/enginegithub.com/azul3d/engine
- EngoEngine/engogithub.com/EngoEngine/engo
- faiface/pixelgithub.com/faiface/pixel
- fogleman/gggithub.com/fogleman/gg
- fyne-io/fynegithub.com/fyne-io/fyne
- fyne-io/fyne#283github.com/fyne-io/fyne/issues/283
- g3n/enginegithub.com/g3n/engine
- getlantern/systraygithub.com/getlantern/systray
- gioui/giogithub.com/gioui/gio
- golang/mobilegithub.com/golang/mobile
- gotk3/gotk3github.com/gotk3/gotk3
- hajimehoshi/ebitengithub.com/hajimehoshi/ebiten
- lxn/walkgithub.com/lxn/walk
- mattn/go-gtkgithub.com/mattn/go-gtk
- micmonay/keybd_eventgithub.com/micmonay/keybd_event
- oakmound/oakgithub.com/oakmound/oak
- pkg/browsergithub.com/pkg/browser
- sciter-sdk/go-scitergithub.com/sciter-sdk/go-sciter
- sqweek/dialoggithub.com/sqweek/dialog
- therecipe/qtgithub.com/therecipe/qt
- webview/webviewgithub.com/webview/webview
- webview/webview#366github.com/webview/webview/issues/366
- ying32/govclgithub.com/ying32/govcl
- ying32/liblclgithub.com/ying32/liblcl
- zserge/traygithub.com/zserge/tray
依赖包1 条
- golang.org/x/exp/shinypkg.go.dev/golang.org/x/exp/shiny
其他外链4 条
- eliasnaur.com/blog/immediate-mode-gui-programmingeliasnaur.com/blog/immediate-mode-gui-programming
- git.sr.ht/~eliasnaur/giogit.sr.ht/~eliasnaur/gio
- go-talks.appspot.com/github.com/guregu/slides/comiket/comiket.slidego-talks.appspot.com/github.com/guregu/slides/comiket/comiket.slide
- golangr.com/guigolangr.com/gui