Поиск по сайту:

Zenity — создает графические (GTK+) диалоговые окна в сценариях командной строки и оболочки.


GNU Linux, операционная система, построенная на очень мощном ядре, называемом Linux. Linux известен своими операциями в командной строке. С появлением Linux в повседневных и настольных компьютерах nix больше не ориентирован на командную строку, он в равной степени графический, и разработка графических приложений больше не остается сложной задачей.

В этой статье мы обсудим создание и выполнение простого графического диалогового окна с использованием приложения GTK+ под названием «Zenity».

Что такое Зенити?

Zenity — это кроссплатформенное приложение с открытым исходным кодом, которое отображает диалоговые окна GTK+ в командной строке и с помощью сценариев оболочки. Это позволяет запрашивать и предоставлять информацию в/из оболочки в графических окнах. Приложение позволяет создавать графические диалоговые окна в командной строке и упрощает взаимодействие между пользователем и оболочкой.

Существуют и другие альтернативы,, но ничто не сравнится с простотой Zenity, особенно если вам не нужно сложное программирование. Zenity — инструмент, который обязательно должен быть в ваших руках.

Особенности Зенити

  1. Программное обеспечение ФОСС
  2. Кроссплатформенное приложение
  3. Разрешить выполнение диалогового окна GTK+
  4. Инструмент командной строки
  5. Поддержка сценариев оболочки

Полезность

  1. Простое создание графического интерфейса
  2. Меньше функций, чем у других сложных инструментов
  3. Позволяет сценариям оболочки взаимодействовать с пользователями графического интерфейса.
  4. Для графического взаимодействия с пользователем возможно создание простого диалогового окна.

Поскольку Zenity доступен для всех известных основных платформ и основан на библиотеке GTK+, программу Zenity можно портировать на другую платформу или с нее.

Установка Zenity в Linux

Zentity по умолчанию установлен или доступен в репозитории большинства современных дистрибутивов Standard Linux. Вы можете проверить, установлен ли он на вашем компьютере или нет, выполнив следующие команды.

ravisaive@tecmint:~$ zenity --version 

3.8.0
ravisaive@tecmint:~$ whereis zenity 

zenity: /usr/bin/zenity /usr/bin/X11/zenity /usr/share/zenity /usr/share/man/man1/zenity.1.gz

Если он не установлен, вы можете установить его с помощью команды Apt или Yum, как показано ниже.

ravisaive@tecmint:~$ sudo apt-get install zenity		[on Debian based systems]

root@tecmint:~# yum install zenity				[on RedHat based systems]

Кроме того, вы также можете собрать его из исходных файлов, загрузив последний исходный пакет Zenity (т. е. текущую версию 3.8), используя следующую ссылку.

  1. http://ftp.gnome.org/pub/gnome/sources/zenity/

Основные диалоговые окна Zenity

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

1. Как насчет быстрого диалогового окна календаря?
root@tecmint:~# zenity --calendar

2. Диалоговое окно ошибки.
root@tecmint:~# zenity --error

3. Диалоговое окно общего ввода текста
root@tecmint:~# zenity --entry

4. Информационный диалог
root@tecmint:~# zenity --info

5. Диалоговое окно вопроса
root@tecmint:~# zenity --question

6. Индикатор выполнения
root@tecmint:~# zenity --progress

7. Диалоговое окно масштабирования
root@tecmint:~# zenity --scale

8. Диалоговое окно пароля
root@tecmint:~# zenity --password

9. Диалоговое окно формы.
root@tecmint:~# zenity --forms

10. Диалог о программе
root@tecmint:~# zenity --about

Диалоговое окно «Создание сценария оболочки»

Теперь мы обсудим создание Zenity Dialog с использованием простых сценариев оболочки. Хотя мы можем создать один диалог, выполнив команды Zenity непосредственно из оболочки (как мы это делали выше), но тогда мы не сможем связать два диалоговых окна, чтобы получить какой-то значимый результат.

Как насчет интерактивного диалогового окна, которое принимает ваши данные и показывает результат.

#!/bin/bash 
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry) 
zenity --info --title="Welcome" --text="Mr./Ms. $first" 
last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry) 
zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

Сохраните его в «anything.sh» (обычно) и не забудьте сделать его исполняемым. Установите разрешение 755 для файла anything.sh и запустите скрипт.

root@tecmint:~# chmod 755 anything.sh 
root@tecmint:~# sh anything.sh

О сценарии Описание

Обычный шебанг, он же хешбанг

#!/bin/bash

В строке ниже «первая» — это переменная, и значение переменной генерируется во время выполнения.

    1. «–entry» означает, что zenity попросят создать текстовое поле ввода.
    2. – title=’ определяет заголовок создаваемого текстового поля.
    3. «—text=» определяет текст, доступный в поле ввода текста.
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)

Эта строка приведенного ниже файла сценария предназначена для создания диалогового окна информации (-info) с заголовком «Добро пожаловать» и текстом «Г-н/госпожа первый».

zenity --info --title="Welcome" --text="Mr./Ms. $first"

Эта строка сценария аналогична второй строке сценария, за исключением того, что здесь определена новая переменная «last».

last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry)

Эта последняя строка сценария снова аналогична третьей строке сценария и генерирует информационное диалоговое окно, которое содержит переменные «$first» и «$last».

zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

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

  1. https://help.gnome.org/users/zenity/stable/

В следующей статье мы будем интегрировать Zenity с дополнительными сценариями оболочки для взаимодействия с пользователем GUI. А до тех пор следите за обновлениями и подключайтесь к Tecmint. Не забудьте оставить ценный отзыв в разделе комментариев.