YAD является ветвлением Zenity.
У меня есть это yad
сценарий:
#!/bin/bash
yad --text="Execute the file? (press 'Cancel' to open in text editor)"
case $? in
0)thunar "$1"
;;
1)gedit $1
;;
esac
Связанный с файлом на рабочем столе как средство запуска приложения, это может использоваться для отображения окна при нажатии на файл (например, сценарий, и т.д.).
В zenity может быть отредактировано название маркировок:
Тот же сценарий с Zenity должен быть похожим так:
#!/bin/bash
zenity --question --text="What to do?" \
--ok-label=Run \
--cancel-label=Edit
case $? in
0)thunar "$1"
;;
1)gedit $1
;;
esac
И Run
и Edit
может быть изменен.
Я думаю, что здесь это говорит это yad
имеет средства отредактировать маркировки:
- button=BUTTON:ID
Add the dialog button. May be used multiply times. ID is an exit code or a command. BUTTON may be gtk stock item name for predefined
кнопки (как gtk-завершение или gtk-хорошо) или текст в МАРКИРОВКЕ формы [! ЗНАЧОК [! ПОДСКАЗКА]], где'!' разделитель объекта. Полный список серийных изделий может быть найден в gtk-демонстрационной-программе в отрывке, названном "Серийные изделия и Браузер Значка". Если никакие кнопки, указанные хорошо и Кнопки отмены, не используются. Посмотрите раздел Exit Status для больше. Если идентификатор имеет нечисловое значение, он рассматривает как команда, и нажмите на такую кнопку, не закрывает диалоговое окно.
Но я не уверен. И я не знаю, что сделать из той информации. Мне нужен пример на как кнопки моего yad
сценарию выше можно было изменить их имена.
У меня есть причины использовать yad
вместо zenity
- zenity сценарий не может меня отклоненный с завершением или Esc.
Я не полностью уверен, что Вы имеете в виду, но если я понимаю это правильно, Вы хотите что-то вроде этого:
#!/bin/bash
yad --text="Execute the file?" --button="Execute" --button="Edit"
case $? in
0)thunar "$1"
;;
1)gedit $1
;;
esac
я нашел ссылку ( ubuntuusers.de ), но это находится на немецком языке. Существует несколько примеров кода и изображений, хотя, который мог бы помочь. И можно всегда переводить его с Google.
я записал бы это как комментарий, если я мог, но мне еще не разрешают. Надежда это помогает.
Я, оказалось, записал это несколько дней назад для моего собственного вопроса (шаблон Bash для использования zenity (или yad) для вставки / редактирование / удаляет записи в файле или базе данных), и думал, что это стоило совместно использовать:
Заметьте эти шесть кнопок на экране и как они обрабатываются в коде ниже (извините все еще происходящая работа). Важное примечание - чтобы использование пользовательских кнопок всегда захватывало коды возврата по умолчанию как 252 для Escape и Windows близко (нажатие X).
while true ; do
Record=(`yad \
--title "websync - Compare local scripts to those published on internet." --list \
--text '<span foreground="blue" font="14">Toggle select next to file then click action button</span>' \
--width=900 --height=600 --center --radiolist -separator="$IFS" --no-click \
--button="Insert before":1 --button=Edit:2 --button=Delete:3 --button=Run:4 \
--button="Cancel ALL":5 --button=Save:6 --search-column=3 \
--column "Select" --column "Record number" --hide-column=2 --column "File Name" \
--column "Status" --column " Website Address" \
"${choices[@]}"`)
Action=$?
RecSelected=false
RecArr=()
i=0
# With radio list only one choice is possible
for Field in "${Record[@]}" ; do
RecSelected=true
RecArr[i]=$Field
# echo "RecArr $i ${RecArr[$i]}"
((i++))
done
echo "button: $Action"#
# Note: When X closes window or Escape pressed 252 is returned.
# Insert before || or Edit ?
if [[ $Action == 1 ]] || [[ $Action == 2 ]] ; then
RecArr[3]="New"
# --text="Set fields and click OK to update"
# Note if there is a space at end of line, next line generates invalid command error from yad
yad --width=600 --height=400 --title="Link file to Website Address" \
--form --center \
--field="Record Number":RO --field="File name":FL --field="Status":RO \
--field="Website Address":TXT \
${RecArr[1]} ${RecArr[2]} ${RecArr[3]} ${RecArr[4]}
ret=$?
# Cancel =252, OK = 0
if [[ $ret == 0 ]] ; then
# Update array and renumber
: # noop
else
continue # cancel changes.
fi
elif [[ $Action == 3 ]] ; then
: # Delete
elif [[ $Action == 4 ]] ; then
: # Run
elif [[ $Action == 5 ]] || [[ $Action == 252 ]] ; then
# Cancel ALL || or X the window or Escape
exit
elif [[ $Action == 6 ]] ; then
# Save
exit
else
zenity --error --text "~/bin/websync - Unknown button return code: $Action"
fi
done # End of while loop