用于 Golang、Windows 和 macOS 的 Zenity 对话框
本仓库包含:
已实现的对话框:
在 Windows、macOS 和其他 Unix 系统上的行为可能略有不同。其中一些是有意为之(反映平台差异),而其他一些则是不可避免的限制。
安装
Go 包:
go get github.com/ncruces/zenity@latest
在 macOS/WSL 上使用 Homebrew 🍺 安装 zenity
命令:
brew install ncruces/tap/zenity
在 Windows 上使用 Scoop 🍨 安装 zenity
命令:
scoop install https://ncruces.github.io/scoop/zenity.json
如果你有 Go,在 macOS/Windows 上安装 zenity
命令:
go install github.com/ncruces/zenity/cmd/zenity@latest
或下载最新版本。
使用
zenity
命令尽最大努力与 GNOME 版本保持兼容。请参考该命令的文档和手册页。
为什么?
Go 包的优势:
- 无
cgo
(参见优势,主要是跨平台编译) - 无主循环(或任何其他线程或初始化要求)
- 通过
context
进行取消 - 在 Windows 上:
- 无额外依赖
- 不需要 Explorer shell
- 可在 Server Core 中工作
- Unicode 支持
- 高 DPI(无需清单文件)
- 视觉样式(无需清单文件)
- WSL/Cygwin/MSYS2 支持
- 无额外依赖
- 在 macOS 上:
- 仅依赖
osascript
- 仅依赖
- 在其他 Unix 系统上:
- 封装
zenity
、matedialog
或qarma
中的一个
- 封装
Zenity 封装器
Go 以外的语言的 Zenity 封装器可以受益于我们的 zenity
命令。在 Unix(Linux、FreeBSD 等)上,它们可以使用原始工具,而在 Windows/macOS 上,它们可以使用本仓库中的命令以实现可移植性。
示例:
- NodeJS
dialog-gui
由 @SnurfDev 开发 - Crystal
zenity.cr
由 @kojix2 开发
致谢
我要感谢所有贡献者,特别是 @gen2brain,他的 dlgs
对 zenity
的 Windows 移植起到了重要作用。