Мне нужно представить некоторый текст вместе с элементами (около 15 значений) для каждой из двух записей списка (файла) Bash. На том же экране мне нужно представить трехсторонний выбор (кнопки, прокручиваемое окно выбора и т. Д.).
Я новичок в Ubuntu (11.04), только начинающий использовать Zenity в сценариях. Мои друзья предложили ЯД.
Могу ли я сделать все это в YAD или использовать какой-то другой простой графический инструмент, неизвестный нам?
.
Вот очень минимальная реализация в Яде.
Текстовый файл с именем «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 и несколько интересных коротких примеров на сайте Яда .
Некоторые примеры Zenity, на тот случай, если кто-то захочет их придерживаться.
Это создаст окно сообщения «Hello world»:
zenity --info --text "Saluton mondo"
Это создаст список, заполненный выводом ls:
ls /var/log | zenity --list --column="Files and directories"
для простых диалогов Yad или kdialog действительно наиболее характерны. Однако полный графический интерфейс для bash может быть выполнен только двумя известными мне программами:
gtkdialog ( https://code.google.com/p/gtkdialog ) даст вам полноценный интерфейс для отдельных программ и, возможно, это то, что вы ищете в первую очередь, если yad окажется недостаточно для ваших нужд.
Другой - это gtkserver ( http://www.gtk-server.org ), который является отдельным запущенным GUI-сервером. Ваше bash-приложение может связываться с ним посредством каналов, сообщений или TCP-сокетов, что очень удобно, если вы планируете сложную настройку скриптов / приложений с единым центральным интерфейсом. Я думаю, что это будет слишком для вашего текущего проекта :-)