避免在对话框中显示取消按钮

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根本无法做到这一点?

des*_*ert 8

是的,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)

yad 用法示例

在此状态下单击“确定”时,程序将返回0退出代码并将选中的选项打印到标准输出:

TRUE|Apples|
TRUE|Oranges|
Run Code Online (Sandbox Code Playgroud)

进一步阅读


Win*_*nix 7

重新标记 Zenity 取消按钮

您可以重新标记按钮,但不能删除它:

$ zenity --list --cancel-label="Go Back" --column="Column 1"
Run Code Online (Sandbox Code Playgroud)

会给你:

zenity 取消 relabel.png


YAD(又一个对话)

双方yadzenity允许您使用GUI对话框从bash脚本或shell命令行。Yad 在每个部门都超越 Zenity:

sudo apt install yad
Run Code Online (Sandbox Code Playgroud)

适用于所有发行版。


Yad 进度条

yad 进度条.png

您可以在 yad 中定义多个进度条,其中 zenity 仅提供 1 个。您还可以包含滚动文本。


亚德按钮

yad 按钮.png

您可以将您想要的任何文本分配给任何按钮。另请注意,您也可以包含一个窗口图标。


Yad 文本输入

yad 文本输入.png

Yad 显示文本供您更改。Zenity 无法显示现有文本,您只能输入新文本。


亚德支持

Yad 的作者和更多贡献者在google 群组中回答您的问题。我已经发布了四五个关于高级功能的问题,通常会在 24 小时内得到答复。更不用说通过同一渠道提供的增强功能了。