Bak*_*riu 8 command-line zenity button
我正在使用 Kubuntu 18.04:
$ zenity --version
3.28.1
Run Code Online (Sandbox Code Playgroud)
我想显示一个--list
带有 zenity的对话框,但我不想显示“取消”按钮(实际上,如果也没有“确定”,我也可以)。使用以下--no-cancel
选项应该很容易:
$ zenity --list --no-cancel
--no-cancel is not supported for this dialog
Run Code Online (Sandbox Code Playgroud)
输出似乎表明 zenity 知道该选项,但不想让我使用它。
我只想向用户显示表格中的数据。我不在乎选择/编辑或返回结果。
有什么替代方法吗?或者zenity
根本无法做到这一点?
是的,zenity
非常有限。幸运的是,有一个可用的叉子可以填补这个空白:yad
– “Yet Another Dialog” ( sudo apt install yad
)。它使用与 相同的语法zenity
,但添加了大量有用的选项,例如--button
显式定义对话框窗口的按钮:
yad --list --button=OK:0
Run Code Online (Sandbox Code Playgroud)
这将显示一个列表窗口,其中只有一个返回退出代码的“确定”按钮0
。
这是一个受联机帮助页启发的简单示例:
yad --list --button=OK:0 --checklist --column "Buy" --column "Item" \
TRUE Apples TRUE Oranges FALSE Pears FALSE Toothpaste
Run Code Online (Sandbox Code Playgroud)
在此状态下单击“确定”时,程序将返回0
退出代码并将选中的选项打印到标准输出:
TRUE|Apples|
TRUE|Oranges|
Run Code Online (Sandbox Code Playgroud)
您可以重新标记按钮,但不能删除它:
$ zenity --list --cancel-label="Go Back" --column="Column 1"
Run Code Online (Sandbox Code Playgroud)
会给你:
双方yad
并zenity
允许您使用GUI对话框从bash脚本或shell命令行。Yad 在每个部门都超越 Zenity:
sudo apt install yad
Run Code Online (Sandbox Code Playgroud)
适用于所有发行版。
您可以在 yad 中定义多个进度条,其中 zenity 仅提供 1 个。您还可以包含滚动文本。
您可以将您想要的任何文本分配给任何按钮。另请注意,您也可以包含一个窗口图标。
Yad 显示文本供您更改。Zenity 无法显示现有文本,您只能输入新文本。
Yad 的作者和更多贡献者在google 群组中回答您的问题。我已经发布了四五个关于高级功能的问题,通常会在 24 小时内得到答复。更不用说通过同一渠道提供的增强功能了。
归档时间: |
|
查看次数: |
3566 次 |
最近记录: |