Как я могу легко создать графический интерфейс с помощью bash-скрипта?

Мне нужно представить некоторый текст вместе с элементами (около 15 значений) для каждой из двух записей списка (файла) Bash. На том же экране мне нужно представить трехсторонний выбор (кнопки, прокручиваемое окно выбора и т. Д.).

Я новичок в Ubuntu (11.04), только начинающий использовать Zenity в сценариях. Мои друзья предложили ЯД.

Могу ли я сделать все это в YAD или использовать какой-то другой простой графический инструмент, неизвестный нам?

.

6
задан 13 January 2019 в 13:32

3 ответа

Вот очень минимальная реализация в Яде.

Текстовый файл с именем «mylist» в том же каталоге, что и скрипт, содержит «1 2 3 4 5 6 7 8 9 10». Пробел является разделителем по умолчанию для ввода в списки.

Пример сценария:

#/bin/bash
thelist=$(<mylist)
thechoice=$(yad --title="Choose a value" --width=200 --height=200 --list --column="Values" --separator="" $thelist)
exit $(yad --title="You chose..." --text=$thechoice)

Вот и все. Прокрутка списка обрабатывается автоматически. --separator="" должен подавить значение Yad по умолчанию добавления символа канала ("|") к выводу.

Когда вы прочитаете справочную страницу, вы увидите, что у вас есть большой набор возможностей. Вы можете добавлять кнопки, значки, переключатели и т. Д. Вы можете создавать диалоги с вкладками, используя функцию ноутбука Yad для встраивания диалогов в другие диалоги в виде плагинов.

Длинный пример на PCLinusOS mag и несколько интересных коротких примеров на сайте Яда .

0
ответ дан 13 January 2019 в 13:32

Некоторые примеры Zenity, на тот случай, если кто-то захочет их придерживаться.

Это создаст окно сообщения «Hello world»:

zenity --info --text "Saluton mondo"

Это создаст список, заполненный выводом ls:

ls /var/log | zenity --list --column="Files and directories"
0
ответ дан 13 January 2019 в 13:32

для простых диалогов Yad или kdialog действительно наиболее характерны. Однако полный графический интерфейс для bash может быть выполнен только двумя известными мне программами:

gtkdialog ( https://code.google.com/p/gtkdialog ) даст вам полноценный интерфейс для отдельных программ и, возможно, это то, что вы ищете в первую очередь, если yad окажется недостаточно для ваших нужд.

Другой - это gtkserver ( http://www.gtk-server.org ), который является отдельным запущенным GUI-сервером. Ваше bash-приложение может связываться с ним посредством каналов, сообщений или TCP-сокетов, что очень удобно, если вы планируете сложную настройку скриптов / приложений с единым центральным интерфейсом. Я думаю, что это будет слишком для вашего текущего проекта :-)

0
ответ дан 13 January 2019 в 13:32

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

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