То, как отредактировать вопрос YAD, маркирует (пример)?

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

Связанный с файлом на рабочем столе как средство запуска приложения, это может использоваться для отображения окна при нажатии на файл (например, сценарий, и т.д.).

enter image description here

В 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.

4
задан 24 November 2017 в 16:23

2 ответа

Я не полностью уверен, что Вы имеете в виду, но если я понимаю это правильно, Вы хотите что-то вроде этого:

#!/bin/bash

yad --text="Execute the file?" --button="Execute" --button="Edit"

case $? in
    0)thunar "$1"
    ;;
    1)gedit $1
    ;;
esac

я нашел ссылку ( ubuntuusers.de ), но это находится на немецком языке. Существует несколько примеров кода и изображений, хотя, который мог бы помочь. И можно всегда переводить его с Google.

я записал бы это как комментарий, если я мог, но мне еще не разрешают. Надежда это помогает.

5
ответ дан 1 December 2019 в 09:13

Я, оказалось, записал это несколько дней назад для моего собственного вопроса (шаблон Bash для использования zenity (или yad) для вставки / редактирование / удаляет записи в файле или базе данных), и думал, что это стоило совместно использовать:

websync 1

Заметьте эти шесть кнопок на экране и как они обрабатываются в коде ниже (извините все еще происходящая работа). Важное примечание - чтобы использование пользовательских кнопок всегда захватывало коды возврата по умолчанию как 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
2
ответ дан 1 December 2019 в 09:13

Другие вопросы по тегам:

Похожие вопросы: