3.8.2.1 Zenity — утилита для создания диалоговых окон из командной строки или с помощью сценариев
Скачать документ Установка zenity
Синтаксис и опции
Примеры использования
Диалоговое окно для вывода предупреждения
Диалоговое окно с запросом
Диалоговое окно с календарем
Диалоговое окно с полем ввода
Добавление zenity в bash-сценарии
Пример 1 Диалоговое окно с сообщением
Пример 2 Диалоговое окно формы
Окружение
- Версия РЕД ОС: 8
- Конфигурация: Рабочая станция
- Версия ПО: zenity-3.99.90
Zenity — кроссплатформенная утилита, позволяющая создавать различные типы диалоговых окон GTK+ в командной строке и сценариях командной оболочки. Утилита упрощает взаимодействие между пользователем и командной оболочкой.
Вы можете подробнее ознакомиться с возможностями графического окружения MATE, просмотрев наши обучающие видео:
на RuTube — Zenity — утилита для создания диалоговых окон из командной строки или с помощью сценариев;
в Яндекс.Дзен — Zenity — утилита для создания диалоговых окон из командной строки или с помощью сценариев;
в VK Видео — Zenity — утилита для создания диалоговых окон из командной строки или с помощью сценариев.
На наших каналах вы также сможете найти много другой полезной информации.
Установка zenity
По умолчанию в РЕД ОС утилита zenity уже установлена (расположена в каталоге /usr/bin/zenity). Проверьте, установлена ли утилита zenity в вашей системе и доступна ли она для использования, выполнив следующую команду:
which zenity
Если по какой-либо причине утилита zenity не установлена, для ее установки выполните команду (потребуются права администратора):
sudo dnf install zenity
Синтаксис и опции
Утилита доступна для запуска через терминал при помощи команды следующего вида:
zenity [опции]
Основные опции:
- -h, --help — вывести справку по работе с утилитой;
- --version — вывести версию утилиты;
- --about — просмотреть информацию о программе;
- --help-general — показать общие параметры.
Виды диалоговых окон:
- --calendar — диалоговое окно выбора даты;
- --entry — диалоговое окно с полем ввода текста;
- --error — диалоговое окно для вывода ошибки;
- --info — диалоговое окно для вывода информации;
- --file-selection — диалоговое окно выбора файлов;
- --list — диалоговое окно со списком;
- --notification — диалоговое окно уведомления;
- --progress — диалоговое окно выполнения процесса;
- --question — диалоговое окно запроса;
- --warning — диалоговое окно предупреждения;
- --scale — диалоговое окно шкалы;
- --text-info — диалоговое окно с текстовой информацией;
- --color-selection — диалоговое окно выбора цвета;
- --password — диалоговое окно пароля;
- --forms — диалоговое окно формы.
Параметры общего назначения:
- --title="ЗАГОЛОВОК" — установить заголовок диалога;
- --width=<ШИРИНА> — установить ширину;
- --height=<ВЫСОТА> — установить высоту;
- --timeout=<ЗАДЕРЖКА> — установить задержку диалога в секундах;
- --ok-label="ТЕКСТ" — установить метку для кнопки «ОК»;
- --cancel-label="ТЕКСТ" — установить метку для кнопки «Отменить»;
- --extra-button="ТЕКСТ" — добавить дополнительную кнопку;
- --modal — установить модальное свойство.
Примеры использования
Диалоговое окно для вывода предупреждения
Для вывода диалогового окна с предупреждением введите в терминал команду:
zenity --warning --text="Сообщение для пользователей" --width=300
Параметры диалога предупреждения:
- --warning — показать диалог с предупреждением;
- --text="ТЕКСТ" — установить текст диалога;
- --icon="ИМЯ_ЗНАЧКА" — установить имя значка;
- --no-wrap — запретить перенос текста;
- --no-markup — не включать разметку Pango;
- --ellipsize — включить усечение текста в диалогах для уменьшения размера окна с длинным текстом.
Диалоговое окно с запросом
Для вывода диалогового окна с вопросом введите в терминал следующую команду:
zenity --question --text="Введите интересующий вопрос?" --width=300
Параметры, используемые для запроса:
- --question — показать диалог с запросом;
- --text="ТЕКСТ" — установить текст диалога;
- --icon="ИМЯ_ЗНАЧКА" — установить имя значка;
- --no-wrap — запретить перенос текста;
- --no-markup — не включать разметку Pango;
- --default-cancel — фокус по умолчанию находится на кнопке «Отменить»;
- --ellipsize — включить усечение текста в диалогах для уменьшения размера окна с длинным текстом;
- --switch — скрыть кнопки «ОК» и «Отменить».
Диалоговое окно с календарем
Для вывода диалогового окна с календарем для выбора желаемой даты введите следующую команду:
zenity --calendar
Параметры, используемые для вывода диалогового окна, в котором будет отображен календарь:
- --calendar — показать диалог выбора даты;
- --text="ТЕКСТ" — установить текст, отображаемый над календарем;
- --day=<ДЕНЬ> — установить день в календаре (число от 1 до 31);
- --month=<МЕСЯЦ> — установить месяц в календаре (число от 1 до 12);
- --year =<ГОД> — установить год в календаре;
- --date-format=<ШАБЛОН> — установить формат возвращаемой даты.
Диалоговое окно с полем ввода
Для запроса данных для ввода от пользователя выполните:
zenity --entry --text="Введите имя файла"
Параметры ввода текста:
- --entry — показать диалог с полем ввода;
- --text="ТЕКСТ" — установить текст диалога;
- --entry-text="ТЕКСТ" — установить текст для поля ввода;
- --hide-text — скрывать текст в поле ввода.
Добавление zenity в bash-сценарии
Пример 1 Диалоговое окно с сообщением
Для создания диалогового окна с сообщением при первом входе пользователя в систему выполните следующий алгоритм действий.
В РЕД ОС 7.3:
Для отображения диалогового окна при первом входе в систему добавьте сценарий в файл /etc/gdm/PreSession/Default. Выполните следующий алгоритм действий.
1. Откройте файл /etc/gdm/PreSession/Default, выполнив команду в терминале (потребуются права администратора):
nano /etc/gdm/PreSession/Default
2. Добавьте в файл следующие строки и сохраните файл:
export LANG=ru_RU.UTF-8
/usr/bin/zenity --info --text="ВСТАВЬТЕ ТЕКСТ, КОТОРЫЙ БУДЕТ ВЫВЕДЕН ПОЛЬЗОВАТЕЛЮ ПРИ ВХОДЕ В СИСТЕМУ" --width=300 --height=150
где:
- export LANG=ru_RU.UTF-8 — параметр, необходимый для работы с русским языком (является обязательным, иначе авторизация не будет проходить успешно);
- --info — диалог для вывода информации;
- --text="ТЕКСТ" — текст для отображения;
- --width=<Значение> — ширина диалогового окна;
- --height=<Значение> — высота диалогового окна.
В РЕД ОС 8.0:
1. Создайте файл в каталоге /home/user1/ (замените user1 на актуальное имя пользователя):
nano /home/user1/zenitywel.sh
2. Добавьте в него следующие строки:
#!/bin/bash
export LANG=ru_RU.UTF-8
/usr/bin/zenity --info --text="Добро пожаловать" --width=300 --height=150
3. Выдайте права на исполнение файла:
chmod +x /home/user1/zenitywel.sh
4. Создайте файл в каталоге /etc/xdg/autostart/ для автозапуска уведомления во время авторизации пользователя:
nano /etc/xdg/autostart/WelcomeZenity.desktop
5. Добавьте в него следующие строки:
[Desktop Entry]
Type=Application
Name=Welcome Message
Comment=Shows a welcome message
Exec=/home/user1/zenitywel.sh
Terminal=false
X-MATE-Autostart-enabled=true #если используется графическая оболочка MATE
X-GNOME-Autostart-enabled=true #если используется графическая оболочка GNOME
X-KDE-Autostart-enabled=true #если используется графическая оболочка KDE
6. Перезапустите ПК. После авторизации пользователя отобразится диалоговое окно.
Пример 2 Диалоговое окно формы
Для создания bash-скрипта выполните следующий алгоритм действий:
1. Для создания файла скрипта введите команду:
nano newscript.sh
2. Впишите в файл следующие строки и сохраните файл:
#!/bin/bash
zenity --forms --title="Добавление сведений" \
--text="Введите информацию ниже:" \
--separator="," \
--add-entry="Имя" \
--add-entry="Фамилия" \
--add-combo=Пол \
--combo-values="мужской|женский"\
--add-entry="СНИЛС" \
--add-calendar="Дата рождения"
case $? in
0)
echo "Информация добавлена.";;
1)
echo "Информация не добавлена.";;
-1)
echo "Произошла ошибка.";;
esac
3. Для предоставления прав на выполнение файла выполните команду:
chmod +x newscript.sh
4. Для запуска скрипта выполните команду:
./newscript.sh
Результат выполнения скрипта:
С дополнительной информацией по созданию интерактивных меню можно ознакомиться в наших статьях:
Дата последнего изменения: 24.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.