# Руководство Zenity

Zenity Руководство приложения рабочего стола В2.0
2003
2004
Sun Microsystems, Inc.
Sun Microsystems, Inc.

Следующим разрешается копировать и/или модифицировать этот документ при условии соблюдения GNU Free Documentation License (GFDL), версии 1.1 или любой более поздней опубликованной ассоциацией свободного программного обеспечения версией без неизменяемых частей, без текстов на обложках. Вы можете найти копию лицензии по этой ссылке или в файле COPYING-DOCS, распространяемом с этим документом.

Этот документ является частью документации GNOME распространяемой под лицензией GFDL. Если вы хотите распространять этот документ отдельно от общей документации, вы должны приложить копию лицензии к документу, как написано в части 6 лицензии.

Некоторые имена и марки используются компаниями для различения их продуктов и услуг и являются торговыми марками. Эти марки присутствуют в документации и члены проекта документирования GNOME знают об этом. Имена выделяются заглавными буквами или начальной заглавной буквой.

ДОКУМЕНТ И ИЗМЕНЁННЫЕ ВЕРСИИ ДОКУМЕНТА ПРЕДСТАВЛЯЮТСЯ ПОЛЬЗОВАТЕЛЮ ПОД ЛИЦЕНЗИЕЙ GNU FREE DOCUMENTATION LICENSE С УВЕДОМЛЕНИЕМ О ТОМ, ЧТО

1. ДОКУМЕНТ РАСПРОСТРАНЯЕТСЯ "КАК ЕСТЬ", БЕЗ ВСЯКИХ ГАРАТИЙ, ПРИДУМАННЫХ ИЛИ УНАСЛЕДОВАННЫХ, БЕЗ ОГРАНИЧЕНИЙ, ГАРАНТИЙ ТОГО ЧТО ДОКУМЕНТ ИЛИ МОДИФИЦИРОВАННАЯ ВЕРСИЯ ДОКУМЕНТА СВОБОДНА ОТ ДЕФЕКТОВ, ТОЛЬКО ДЛЯ СПЕЦИАЛЬНОГО ИСПОЛЬЗОВАНИЯ НЕ ЗАКЛЮЧАЩЕГО В СЕБЕ РИСКИ КАЧЕСТВА, АККУРАТНОСТИ ИЛИ СООТВЕТСТВИЯ ДОКУМЕНТА ИЛИ ИЗМЕНЁННЫХ ВЕРСИЙ ДОКУМЕНТА ВАШИМ ТРЕБОВАНИЯМ. ЕСЛИ ДОКУМЕНТ ИЛИ МОДИФИЦИРОВАННАЯ ВЕРСИЯ ДОКУМЕНТА ИМЕЕТ НЕДОСТАТКИ, ВЫ (А НЕ АВТОР ДОКУМЕНТА ИЛИ ЕГО ПОМОЩНИК) ДОЛЖНЫ САМИ ПРИЛОЖИТЬ УСИЛИЯ К ЕГО ДОРАБОТКИ, КОРРЕКЦИИ ИЛИ ВОССТАНОВЛЕНИЮ. ЭТО ПРЕДУПРЕЖДЕНИЕ СОСТАВЛЯЕТ СУЩЕСТВЕННУЮ ЧАСТЬ ЛИЦЕНЗИИ. ДОКУМЕНТ НЕ ДОЛЖЕН ИСПОЛЬЗОВАТЬСЯ БЕЗ ДАННОГО ПРЕДУПРЕЖДЕНИЯ И

2. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ И НИ ПРИ КАКОМ ЗАКОННОМ СПОСОБЕ, НИ ПО КАКОМУ СОГЛАШЕНИЮ ИЛИ ДРУГОЙ ПРИЧИНЕ, АВТОР, СОЗДАТЕЛЬ ИЛИ ПОМОЩНИКИ НЕ НЕСУТ ОТВЕТСТВЕННОСТЬ ЗА ПРЯМОЕ, КОСВЕННОЕ, СПЕЦИАЛЬНОЕ, СЛУЧАЙНОЕ ИЛИ ПРЕДНАМЕРЕННОЕ ПОВРЕЖДЕНИЕ ЛЮБОГО СВОЙСТВА, ВКЛЮЧАЯ БЕЗ ОГРАНИЧЕНИЯ ПОТЕРЮ ЖЕЛАНИЯ, РАБОТОСПОСОБНОСТИ, КОМПЬЮТЕРНЫЕ СБОИ ИЛИ НЕПРАВИЛЬНОЕ ВЗАИМОДЕЙСТИЕ, ВМЕСТЕ ИЛИ ПООТДЕЛЬНОСТИ. НИКАКИЕ ПОВРЕЖДЕНИЯ И ПОТЕРИ НЕ МОГУТ БЫТЬ ВОЗЛОЖЕНЫ НА АВТОРА ДОКУМЕНТА ИЛИ МОДИФИЦИРОВАННОЙ ВЕРСИИ ДОКУМЕНТА, ДАЖЕ ЕСЛИ СТОРОНА БЫЛА ПРОИНФОРМИРОВАНА О ВОЗМОЖНОСТИ ТАКИХ ПОВРЕЖДЕНИЙ.

Sun
Java Desktop System Documentation Team
Sun Microsystems, Inc.
Glynn
Foster
Проект документирования GNOME
Nicholas
Curran
Проект документирования GNOME
Zenity Руководство приложения рабочего стола В2.0
August 2004

Sun Java Desktop System Documentation Team

Sun Microsystems, Inc.

Руководство Zenity В1.0
Январь 2003

Glynn Foster

Проект документирования GNOME

Это руководство описывает версию Zenity 2.6.0.

## Обратная связь

Для обратной связи, следуйте указаниям на странице обратной связи.

Zenity это обновлённая версия gdialog, адаптация программы dialog для среды GNOME. Это приложение позволяет вам изображать диалоговые окна с помощью команд из командной строки и сценариев оболочки.

## Введение

Zenity позволяет вам создавать следующие типы простых диалоговых окон:

- Календарь

- Выбор файла

- Список

- Значок уведомления

- Сообщение

  - Ошибка

  - Информация

  - Вопрос

  - Предупреждение

- Прогресс

- Ввод текста

- Текстовая информация

## Использование

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

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

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

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

Когда вы пишите команды Zenity, убедитесь, что вы помещаете каждый аргумент в кавычки.

Например, используйте:

    zenity --calendar --title="Планировщик Отпуска"

Не пишите:

    zenity --calendar --title=Планировщик Отпуска

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

### Клавиша доступа

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

Некоторые окна Zenity поддерживают использование клавиш доступа. Чтобы указать символ, который нужно использовать для клавиши доступа, поместите знак подчёркивания перед тем символом в тексте диалогового окна. Следующий пример показывает, как установить букву 'В' для клавиши доступа:

    "_Выберите имя".

### Коды Выхода

Zenity возвращает следующие коды выхода:

Код выхода | Описание
--- | ---
`0` | Пользователь нажал либо OK, либо Закрыть.
`1` | Пользователь либо нажал Отмена, либо использовал функции окна, чтобы закрыть диалоговое окно.
`-1` | Произошла неожиданная ошибка.

### Общие параметры

Все диалоговые окна Zenity поддерживают следующие общие параметры:

`--title`=заголовок

  Указывает заголовок диалогового окна.

`--window-icon`=путь_к_значку

  Указывает значок, который изображается в рамке диалогового окна. Существуют 4 запасных значка, доступных по следующим ключевым словам - 'info', 'warning', 'question' и 'error'.

`--width`=ширина

  Указывает ширину диалогового окна.

`--height`=высота

  Указывает высоту диалогового окна.

### Параметры вызова справки

Zenity предоставляет следующие параметры справки:

`--help`

  Показывает сокращённый текст помощи.

`--help-all`

  Показывает полный текст помощи для всех диалоговых окон.

`--help-general`

  Показывает текст помощи по общим параметрам диалоговых окон.

`--help-calendar`

  Показывает текст помощи по параметрам диалогового окна календаря.

`--help-entry`

  Показывает текст помощи по параметрам диалогового окна ввода текста.

`--help-error`

  Показывает текст помощи по параметрам диалогового окна сообщения об ошибке.

`--help-info`

  Показывает текст помощи по параметрам диалогового окна информации.

`--help-file-selection`

  Показывает текст помощи по параметрам диалогового окна выбора файла.

`--help-list`

  Показывает текст помощи по параметрам диалогового окна списка.

`--help-notification`

  Показывает текст помощи по параметрам значка уведомлений.

`--help-progress`

  Показывает текст помощи по параметрам диалогового окна индикатора прогресса.

`--help-question`

  Показывает текст помощи по параметрам диалогового окна вопроса.

`--help-warning`

  Показывает текст помощи по параметрам диалогового окна предупреждения.

`--help-text-info`

  Показывает текст помощи по параметрам диалогового окна текстовой информации.

`--help-misc`

  Показывает помощь по разнообразным параметрам.

`--help-gtk`

  Показывает помощь по параметрам GTK+ .

### Разнообразные параметры

Zenity также может запускаться со следующими дополнительными параметрами:

`--about`

  Изображает диалоговое окно О программе Zenity, которое содержит информацию о версии Zenity, информацию об авторских правах и информацию о разработчике.

`--version`

  Изображает номер версии Zenity.

### Параметры GTK+

Zenity поддерживает стандартные параметры программ GTK+ . Для получения большей информации о GTK+ параметрах, выполните команду `zenity -?`.

## Диалоговое окно календарь

Используйте параметр `--calendar`, чтобы создать диалоговое окно Календарь. Zenity возвращает выбранную дату в стандартный поток ошибок. Если в командной строке не указана дата, то диалоговое окно будет использовать текущую дату.

Диалоговое окно календарь поддерживает следующие параметры:

`--text`=текст

  Указывает текст, который будет изображён в диалоговом окне календаря.

`--day`=день

  Указывает день, который будет выделен в диалоговом окне календаря. День должен быть числом между 1 и 31 включительно.

`--month`=месяц

  Указывает месяц, который будет выделен в диалоговом окне календаря. Месяц должен быть числом между 1 и 12 включительно.

`--year`=год

  Указывает год, который будет выбран в диалоговом окне календаря.

`--date-format`=формат

  Указывает формат даты, в котором она будет возвращена после выбора из диалогового окна. Формат даты по умолчанию зависит от локальных настроек. Формат должен иметь вид, приемлемый функцией `strftime`, например `%A %d/%m/%y`.

Следующий сценарий является примером того, как создавать диалоговое окно Календарь:

            #!/bin/sh

            if zenity --calendar \
            --title="Выберите Дату" \
            --text="Щёлкните на дате, чтобы выбрать её." \
            --day=10 --month=8 --year=2004
              then echo $?
              else echo "Дата не выбрана"
            fi

### Пример диалогового окна календарь

Zenity calendar dialog example

## Диалоговое окно выбора файла

Используйте параметр `--file-selection`, чтобы создать диалоговое окно выбора файла. Zenity возвращает имена выбранных файлов или директорий в стандартный поток ошибок. Режимом диалогового окна выбора файлов по умолчанию является режим "открыть".

Диалоговое окно выбора файлов поддерживает следующие параметры:

`--filename`=имя_файла

  Указывает файл или директорию, которая будет выбрана в диалоговом окне, когда оно впервые появится.

`--multiple`

  Позволяет выбирать сразу несколько файлов в окне выбора.

`--directory`

  Позволяет выбирать только директории в диалоговом окне выбора файла.

`--save`

  Устанавливает диалоговое окно в режим сохранения файла.

`--separator`=разделитель

  Указывает строку, которая будет использована для разделения возвращённого списка имён файлов.

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

            #!/bin/sh

            FILE=`zenity --file-selection --title="Выберите файл"`

            case $? in
                     0)
                            echo "Выбран \"$FILE\".";;
                     1)
                            echo "Файл не выбран.";;
                    -1)
                            echo "Файл не выбран.";;
            esac

### Пример диалогового окна выбора файла

Zenity file selection dialog example

## Значок уведомления

`--text`=текст

  Указывает текст, который будет изображён в области уведомления.

Следующий сценарий является примером того, как создавать значок уведомлений:

            #!/bin/sh

            zenity --notification\
              --window-icon="info" \
              --text="Необходимо обновить систему."

### Пример значка уведомления

Zenity notification icon example

## Диалоговое окно списка

Используйте параметр `--list`, чтобы создать диалоговое окно списка. Zenity возвращает элементы первого столбца текста из выбранных строк в стандартный поток ошибок.

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

Если вы используете параметр `--checklist` или `--radiolist`, каждая строка должна начинаться либо с 'TRUE', либо с 'FALSE'.

Диалоговое окно списка поддерживает следующие параметры:

`--column`=столбец

  Указывает заголовки столбцов, которые будут изображены в диалоговом окне списка. Вы должны указать параметр `--column` для каждого столбца, который вы хотите отобразить в диалоговом окне.

`--checklist`

  Указывает, что первый столбец в диалоговом окне списка содержит флажки.

`--radiolist`

  Указывает, что первый столбец в диалоговом окне содержит поля выбора.

`--editable`

  Позволяет редактирование изображаемых элементов.

`--separator`=разделитель

  Указывает строку-разделитель, используемую, когда диалоговое окно возвращает выбранные элементы.

`--print-column`=столбец

  Указывает, какой столбец нужно печатать при выборе элемента. По умолчания это 1-й столбец. Можно использовать 'ALL', чтобы печатать все столбцы из списка.

Следующий сценарий является примером того, как создавать диалоговое окно списка:

            #!/bin/sh

            zenity --list \
              --title="Выберите ошибки, которые Вы хотите просмотреть" \
              --column="Номер ошибки" --column="Критичность" --column="Описание" \
                992383 Normal "GtkTreeView падает при множественном выборе" \
                293823 High "Словарь GNOME не умеет обращаться с прокси" \
                393823 Critical "Редактирование Меню не работает в GNOME 2.0"

### Пример диалогового окна списка

Zenity list dialog example

## Диалоговое окно сообщений

Zenity может создавать четыре типа диалоговых окон сообщений:

- Ошибка

- Информация

- Вопрос

- Предупреждение

Для каждого типа используйте параметр `--text`, чтобы задать текст в диалоге.

### Диалоговое окно ошибки

Используйте параметр `--error`, чтобы создать диалоговое окно ошибки.

Следующий сценарий является примером того, как можно создавать диалоговое окно ошибки:

              #!/bin/bash

              zenity --error \
              --text="Не могу найти /var/log/syslog."

#### Пример диалогового окна ошибки

Zenity error dialog example

### Диалоговое окно информации

Используйте параметр `--info`, чтобы создать диалоговое окно информации.

Следующий сценарий является примером того, как создавать диалоговое окно информации:

              #!/bin/bash

              zenity --info \
              --text="Слияние завершено. Обновлено 3 из 10 файлов."

#### Пример диалогового окна информации

Zenity information dialog example

### Диалоговое окно вопроса

Используйте параметр `--question`, чтобы создать диалоговое окно вопроса.

Следующий сценарий является примером того, как создавать диалоговое окно вопроса:

              #!/bin/bash

              zenity --question \
              --text="Вы уверены, что хотите продолжить?"

#### Пример диалогового окна вопроса

Zenity question dialog example

### Диалоговое окно предупреждения

Используйте параметр `--warning`, чтобы создать диалоговое окно предупреждения.

Следующий сценарий является примером того, как создавать диалоговое окно предупреждения:

              #!/bin/bash

              zenity --warning \
              --text="Отсоедините кабель питания, чтобы избежать удара электричеством."

#### Пример диалогового окна предупреждения

Zenity warning dialog example

## Диалоговое окно индикатора прогресса

Используйте параметр `--progress`, чтобы создать диалоговое окно индикатора прогресса.

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

Диалоговое окно индикатора прогресса поддерживает следующие параметры:

`--text`=текст

  Указывает текст, который будет изображён в диалоговом окне.

`--percentage`=процент

  Указывает начальное состояние индикатора прогресса.

`--auto-close`

  Диалоговое окно закрывается, когда процент выполнения достиг 100% .

`--pulsate`

  Указывает, что индикатор прогресса пульсирует до тех пор, пока из стандартного ввода не будет прочитан символ конца файла EOF.

Следующий сценарий является примером того, как можно создавать диалоговое окно индикатора прогресса:

            #!/bin/sh
            (
            echo "10" ; sleep 1
            echo "# Обновляю журнал почты" ; sleep 1
            echo "20" ; sleep 1
            echo "# Переустанавливаю задачи cron" ; sleep 1
            echo "50" ; sleep 1
            echo "Это строка будет просто проигнорирована" ; sleep 1
            echo "75" ; sleep 1
            echo "# Перезагружаю систему" ; sleep 1
            echo "100" ; sleep 1
            ) |
            zenity --progress \
              --title="Обновление системного журнала" \
              --text="Просматриваю журналы почты..." \
              --percentage=0

            if [ "$?" = -1 ] ; then
                    zenity --error \
                      --text="Обновление отменено."
            fi

### Пример диалогового окна индикатора прогресса\

Zenity progress dialog example

## Диалоговое окно ввода текста

Используйте параметр `-entry`, чтобы создать диалоговое окно ввода текста. Zenity возвращает введенный текст в стандартный поток вывода ошибок.

Диалоговое окно ввода текста поддерживает следующие параметры:

`--text`=текст

  Указывает текст, который будет изображён в диалоговом окне (но не в поле ввода).

`--entry-text`=текст

  Указывает текст, который будет изображён в поле ввода диалогового окна.

`--hide-text`

  Скрывает текст в поле ввода диалогового окна.

Следующий сценарий является примером того, как можно создать диалоговое окно ввода текста:

            #!/bin/sh

            if zenity --entry \
            --title="Добавить запись" \
            --text="Введите Ваш пароль:" \
            --entry-text "password" \
            --hide-text
              then echo $?
              else echo "Пароль не введён\"
            fi

### Пример диалогового окна ввода текста

Zenity text entry dialog example

## Диалоговое окно текстовой информации

Используйте параметр `--text-info`, чтобы создать диалоговое окно текстовой информации.

Диалоговое окно текстовой информации поддерживает следующие параметры:

`--filename`=имя_файла

  Указывает имя файла, который будет загружен в окно текстовой информации.

`--editable`

  Позволяет редактирование изображённого текста. Отредактированный текст возвращается в стандартный поток ошибок, после того, как дилоговое окно будет закрыто.

Следующий сценарий является примером того, как можно создавать диалоговое окно текстовой информации:

            #!/bin/sh

            FILE=`zenity --file-selection \
              --title="Выберите файл"`

            case $? in
                     0)
                            zenity --text-info \
                              --title=$FILE \
                              --filename=$FILE \
                              --editable 2>/tmp/tmp.txt;;
                     1)
                            echo "Файл не выбран.";;
                    -1)
                            echo "Файл не выбран.";;
            esac

### Пример диалогового окна текстовой информации

Zenity text information dialog example