我正在使用 Kubuntu 18.04:
$ zenity --version
3.28.1
我想--list
用 zenity 显示一个对话框,但我不想显示“取消”按钮(事实上,如果没有“确定”按钮也没关系)。使用以下--no-cancel
选项应该很容易:
$ zenity --list --no-cancel
--no-cancel is not supported for this dialog
输出似乎表明 zenity 知道该选项但不想让我使用它。
我只想向用户显示表格中的数据。我不关心选择/编辑或获取结果。
还有其他方法吗?还是zenity
根本无法做到这一点?
答案1
是的,zenity
功能非常有限。幸运的是,有一个分支可以填补这个空白:yad
- “Yet Another Dialog” ( sudo apt install yad
)。它使用与 相同的语法zenity
,但添加了大量有用的选项,例如--button
明确定义对话框窗口的按钮:
yad --list --button=OK:0
这将显示一个列表窗口,其中只有一个“OK”按钮返回退出代码0
。
例子
这是一个受手册页启发的简单示例:
yad --list --button=OK:0 --checklist --column "Buy" --column "Item" \
TRUE Apples TRUE Oranges FALSE Pears FALSE Toothpaste
在此状态下单击“确定”时,程序将返回0
退出代码并将选中的选项打印到标准输出:
TRUE|Apples|
TRUE|Oranges|
进一步阅读
答案2
重新标记 Zenity 取消按钮
您可以重新标记按钮,但不能删除它:
$ zenity --list --cancel-label="Go Back" --column="Column 1"
会给你:
YAD(又一个对话)
yad
和都zenity
允许您从 bash 脚本或 shell 命令行使用 GUI 对话框。不过 Yad 在各个方面都超越了 Zenity:
sudo apt install yad
适用于所有发行版。
Yad 进度条
您可以在 yad 中定义多个进度条,而 zenity 仅提供 1 个。您还可以包含滚动文本。
亚德按钮
您可以为任意按钮指定任意文本。另请注意,您还可以添加窗口图标。
Yad 文本输入
Yad 显示文本供您更改。Zenity 无法显示现有文本,您只能输入新文本。
Yad 支持
Yad 的作者和其他贡献者回答了你的问题谷歌群组。我发布了四五个关于高级功能的问题,通常会在 24 小时内得到答复。更不用说通过同一渠道提供增强功能了。