如果 YAD 是 Zenity 的一个分支,为什么没有 --imagelist?
If YAD is a fork of Zenity why is there no --imagelist?
Zenity 在我的许多 bash 项目中使用,但看看 YAD 的高级功能,有很多切换的理由。不幸的是,经过一些测试后,我发现列表类型对话框没有 --imagelist 选项。这是一个主要问题,因为我的大多数项目都使用图像列表。
Zenity 版本 3.28.1 上的以下示例 运行s
#!/bin/bash
table=(~/image.png " " "Title1" " " "description1" "output1" ~/image.png " " "Title2" " " "description2" "output2" ~/image.png " " "Title3" " " "description3" "output3")
zenity --list --title="page title" --text="some random text" --imagelist --ok-label=Open --cancel-label=Home --print-column=6 --hide-column=6 --separator=' ' --width=600 --height=400 \
--column="Cover image" \
--column=" " \
--column="Name" \
--column=" " \
--column="details" \
--column="Folder" \
"${table[@]}"
对话框应如下所示:
在此示例中,${table[@]} 是一个数组,其中包含每行的所有数据,包括第 1 列中图像的文件路径。有没有办法在YAD?
我安装了 YAD 并查看了终端中提供的所有帮助页面,也尝试了 运行 类似的图像列表示例,但它似乎不受支持(语法大部分相同,因为 YAD 是禅度)
使用 yad,列可以具有与其相关联的类型。在您的情况下,您希望第一列使用 :IMG
类型,其他两列可以保留为纯文本。
table=(
~/image.png "" "Title1" "" "description1" "output1"
~/image.png "" "Title2" "" "description2" "output2"
~/image.png "" "Title3" "" "description3" "output3"
)
yad \
--list \
--title="page title" \
--text="some random text" \
--imagelist \
--print-column=6 \
--hide-column=6 \
--separator=' ' \
--width=600 \
--height=400 \
--column="Cover image:IMG" \
--column=" " \
--column="Name" \
--column=" " \
--column="details" \
--column="Folder" \
--button="Home":1 \
--button="Open":20 \
--response=20 \
"${table[@]}"
The output, missing your images
如果您在列表项上按 Enter 或单击“打开”,以及输出“output1”或“output2”等,这会将退出代码设置为 20
也就是说,我一直遇到退出代码或输出文本显示不正确的问题。上面的示例对我来说工作正常,但如果我将 Open 退出代码更改为“25”而不是“20”,它就会停止工作。不知道为什么它的行为不一致。
Zenity 在我的许多 bash 项目中使用,但看看 YAD 的高级功能,有很多切换的理由。不幸的是,经过一些测试后,我发现列表类型对话框没有 --imagelist 选项。这是一个主要问题,因为我的大多数项目都使用图像列表。
Zenity 版本 3.28.1 上的以下示例 运行s
#!/bin/bash
table=(~/image.png " " "Title1" " " "description1" "output1" ~/image.png " " "Title2" " " "description2" "output2" ~/image.png " " "Title3" " " "description3" "output3")
zenity --list --title="page title" --text="some random text" --imagelist --ok-label=Open --cancel-label=Home --print-column=6 --hide-column=6 --separator=' ' --width=600 --height=400 \
--column="Cover image" \
--column=" " \
--column="Name" \
--column=" " \
--column="details" \
--column="Folder" \
"${table[@]}"
对话框应如下所示:
在此示例中,${table[@]} 是一个数组,其中包含每行的所有数据,包括第 1 列中图像的文件路径。有没有办法在YAD?
我安装了 YAD 并查看了终端中提供的所有帮助页面,也尝试了 运行 类似的图像列表示例,但它似乎不受支持(语法大部分相同,因为 YAD 是禅度)
使用 yad,列可以具有与其相关联的类型。在您的情况下,您希望第一列使用 :IMG
类型,其他两列可以保留为纯文本。
table=(
~/image.png "" "Title1" "" "description1" "output1"
~/image.png "" "Title2" "" "description2" "output2"
~/image.png "" "Title3" "" "description3" "output3"
)
yad \
--list \
--title="page title" \
--text="some random text" \
--imagelist \
--print-column=6 \
--hide-column=6 \
--separator=' ' \
--width=600 \
--height=400 \
--column="Cover image:IMG" \
--column=" " \
--column="Name" \
--column=" " \
--column="details" \
--column="Folder" \
--button="Home":1 \
--button="Open":20 \
--response=20 \
"${table[@]}"
The output, missing your images
如果您在列表项上按 Enter 或单击“打开”,以及输出“output1”或“output2”等,这会将退出代码设置为 20
也就是说,我一直遇到退出代码或输出文本显示不正确的问题。上面的示例对我来说工作正常,但如果我将 Open 退出代码更改为“25”而不是“20”,它就会停止工作。不知道为什么它的行为不一致。