带有两个按钮但没有文本输入的 zenity 对话框 window
zenity dialog window with two buttons but no text entry
我想创建一个带有两个按钮的 zenity 对话框 window 作为唯一的用户输入。
下面创建了一个 window 有两个按钮但有一个 space 用于文本输入
zenity --entry --title="" --text "Choose A or B" --ok-label="B" --cancel-label="A"
下面创建一个只有一个按钮的window
zenity --info --title="" --text "Choose A or B" --ok-label="B"
--question
就是你要找的:
zenity --question \
--title="" \
--text "Choose A or B" \
--ok-label="B" \
--cancel-label="A"
你也可以使用--info
zenity --info \
--title="A or B" \
--text "Choose A or B" \
--ok-label="B" \
--cancel-label="A"
至少最新版本的 zenity 有一个 --extra-button 标志。
结合退出代码的值和标准输出的内容,代码可以弄清楚用户做了什么。
例如:
while true; do
ans=$(zenity --info --title 'Choose!' \
--text 'Choose A or B or C' \
--ok-label A \
--extra-button B --extra-button C \
--timeout 3)
rc=$?
echo "${rc}-${ans}"
done
结果如下所示:
# timeout
5-
# ESC key
1-
# A button
0-
# B button
1-B
# C button
1-C
请注意,上面的工作方式与其他对话框类似,但某些组合可能会令人惊讶。请务必尝试并处理各种不同的用户交互。
我想创建一个带有两个按钮的 zenity 对话框 window 作为唯一的用户输入。
下面创建了一个 window 有两个按钮但有一个 space 用于文本输入
zenity --entry --title="" --text "Choose A or B" --ok-label="B" --cancel-label="A"
下面创建一个只有一个按钮的window
zenity --info --title="" --text "Choose A or B" --ok-label="B"
--question
就是你要找的:
zenity --question \
--title="" \
--text "Choose A or B" \
--ok-label="B" \
--cancel-label="A"
你也可以使用--info
zenity --info \
--title="A or B" \
--text "Choose A or B" \
--ok-label="B" \
--cancel-label="A"
至少最新版本的 zenity 有一个 --extra-button 标志。
结合退出代码的值和标准输出的内容,代码可以弄清楚用户做了什么。
例如:
while true; do
ans=$(zenity --info --title 'Choose!' \
--text 'Choose A or B or C' \
--ok-label A \
--extra-button B --extra-button C \
--timeout 3)
rc=$?
echo "${rc}-${ans}"
done
结果如下所示:
# timeout
5-
# ESC key
1-
# A button
0-
# B button
1-B
# C button
1-C
请注意,上面的工作方式与其他对话框类似,但某些组合可能会令人惊讶。请务必尝试并处理各种不同的用户交互。