Документация Python неофициальный перевод
Содержание страницы

37.5. EasyDialogs – Основные диалоги MacintoshEasyDialogs – Basic Macintosh dialogs

Модуль EasyDialogs содержит несколько простых диалогов для Macintosh. Диалоги запускаются в отдельном приложении, которое появляется в доке, и по нему нужно щёлкнуть, чтобы диалоги отобразились. Все подпрограммы принимают необязательный параметр идентификатора ресурса id, с помощью которого можно переопределить ресурс DLOG, используемый для диалога, при условии, что элементы диалога соответствуют (по типу и номеру) элементам в стандартном ресурсе DLOG. Подробнее см. в исходном коде.

Примечание

Этот модуль был удалён в Python 3.x.

Модуль EasyDialogs определяет следующие функции:

EasyDialogs.Message(str[, id[, ok]])

Отображает модальный диалог с текстом сообщения str. Длина текста не должна превышать 255 символов. Текст кнопки по умолчанию – «OK», но он заменяется на строку аргумента ok, если он указан. Управление возвращается, когда пользователь нажимает кнопку «OK».

EasyDialogs.AskString(prompt[, default[, id[, ok[, cancel]]]])

Запрашивает у пользователя ввод строки через модальный диалог. prompt – это приглашающее сообщение, а необязательный аргумент default задаёт начальное значение строки (в противном случае используется ""). Текст кнопок «OK» и «Cancel» можно изменить с помощью аргументов ok и cancel. Все строки могут быть длиной не более 255 байт. AskString() возвращает введённую строку или None, если пользователь отменил ввод.

EasyDialogs.AskPassword(prompt[, default[, id[, ok[, cancel]]]])

Запрашивает у пользователя ввод строки через модальный диалог. Как AskString(), но вводимый текст отображается в виде точек. Аргументы имеют тот же смысл, что и для AskString().

EasyDialogs.AskYesNoCancel(question[, default[, yes[, no[, cancel[, id]]]]])

Отображает диалог с приглашением question и тремя кнопками «Yes», «No» и «Cancel». Возвращает 1 для «Yes», 0 для «No» и -1 для «Cancel». Значение default (или 0, если default не указано) возвращается при нажатии клавиши RETURN. Текст кнопок можно изменить с помощью аргументов yes, no и cancel; чтобы скрыть кнопку, укажите "" для соответствующего аргумента.

EasyDialogs.ProgressBar([title[, maxval[, label[, id]]]])

Отображает немодальный диалог с индикатором выполнения. Это конструктор для класса ProgressBar, описанного ниже. title – отображаемый текст строки (по умолчанию «Working…»), maxval – значение, при котором выполнение завершено (по умолчанию 0, что означает, что остаётся неопределённое количество работы), и label – текст, отображаемый над самой полосой прогресса.

EasyDialogs.GetArgv([optionlist[ commandlist[, addoldfile[, addnewfile[, addfolder[, id]]]]]])

Отображает диалог, помогающий пользователю составить список аргументов командной строки. Возвращает список в формате sys.argv, подходящий для передачи в качестве аргумента в getopt.getopt(). addoldfile, addnewfile и addfolder являются логическими аргументами. Если они не равны нулю, они позволяют пользователю вставлять в командную строку пути к существующему файлу, (возможно) ещё не существующему файлу и папке соответственно. (Примечание: аргументы-опции должны указываться в командной строке перед аргументами файлов и папок, чтобы быть распознанными getopt.getopt().) Аргументы, содержащие пробелы, можно указывать, заключая их в одинарные или двойные кавычки. Исключение SystemExit возбуждается, если пользователь нажимает кнопку «Cancel».

optionlist – это список, определяющий всплывающее меню, из которого выбираются допустимые опции. Его элементы могут быть одного из двух видов: optstr или (optstr, descr). Если указан, descr – это короткая описательная строка, которая отображается в диалоге, пока эта опция выбрана во всплывающем меню. Соответствие между optstr и аргументами командной строки:

Формат optstr

Формат командной строки

x

-x (короткая опция)

x: или x=

-x (короткая опция со значением)

xyz

--xyz (длинная опция)

xyz: или xyz=

--xyz (длинная опция со значением)

commandlist – это список элементов вида cmdstr или (cmdstr, descr), где descr – как указано выше. Строки cmdstr будут отображаться во всплывающем меню. При выборе текст cmdstr будет добавлен в командную строку как есть, за исключением того, что завершающий ':' или '=' (если присутствуют) будут удалены.

Новое в версии 2.0.

EasyDialogs.AskFileForOpen([message] [, typeList] [, defaultLocation] [, defaultOptionFlags] [, location] [, clientName] [, windowTitle] [, actionButtonLabel] [, cancelButtonLabel] [, preferenceKey] [, popupExtension] [, eventProc] [, previewProc] [, filterProc] [, wanted] )

Показывает диалог, запрашивающий у пользователя файл для открытия, и возвращает выбранный файл или None, если пользователь отменил. message – текст сообщения для отображения, typeList – список допустимых 4-символьных типов файлов, defaultLocation – это путь, FSSpec или FSRef папки, которая отображается изначально, location – это (x, y) позиция на экране, где отображается диалог, actionButtonLabel – строка, отображаемая вместо «Open» в кнопке OK, cancelButtonLabel – строка, отображаемая вместо «Cancel» в кнопке отмены, wanted – тип возвращаемого значения: str, unicode, FSSpec, FSRef и их подтипы допустимы.

Описание остальных аргументов см. в документации Apple Navigation Services и в исходном коде EasyDialogs.

EasyDialogs.AskFileForSave([message] [, savedFileName] [, defaultLocation] [, defaultOptionFlags] [, location] [, clientName] [, windowTitle] [, actionButtonLabel] [, cancelButtonLabel] [, preferenceKey] [, popupExtension] [, fileType] [, fileCreator] [, eventProc] [, wanted] )

Показывает диалог, запрашивающий у пользователя файл для сохранения, и возвращает выбранный файл или None, если пользователь отменил. savedFileName – имя файла по умолчанию для сохранения (возвращаемое значение). Описание остальных аргументов см. в AskFileForOpen().

EasyDialogs.AskFolder([message] [, defaultLocation] [, defaultOptionFlags] [, location] [, clientName] [, windowTitle] [, actionButtonLabel] [, cancelButtonLabel] [, preferenceKey] [, popupExtension] [, eventProc] [, filterProc] [, wanted] )

Показывает диалог, запрашивающий у пользователя выбор папки, и возвращает выбранную папку или None, если пользователь отменил. Описание аргументов см. в AskFileForOpen().

См. также

Справочник по Navigation Services

Справочная документация для разработчиков по Navigation Services, части фреймворка Carbon.

37.5.1. Объекты ProgressBarProgressBar Objects

Объекты ProgressBar обеспечивают поддержку немодальных диалогов с индикатором выполнения. Поддерживаются как детерминированные (термометр), так и индетерминированные (столбик парикмахерской) индикаторы выполнения. Индикатор будет детерминированным, если его максимальное значение больше нуля; в противном случае он будет индетерминированным.

Изменено в версии 2.2: Добавлена поддержка индетерминированных индикаторов выполнения.

Диалог отображается сразу после создания. Если нажата кнопка «Отмена» в диалоге, или набрано Cmd-. или ESC, окно диалога скрывается и возникает исключение KeyboardInterrupt (но обратите внимание, что эта реакция происходит только при следующем обновлении индикатора выполнения, обычно при вызове inc() или set()). В противном случае индикатор остаётся видимым до тех пор, пока объект ProgressBar не будет удалён.

Объекты ProgressBar имеют следующие атрибуты и методы:

ProgressBar.curval

Текущее значение индикатора выполнения (тип int или long). Обычные методы доступа приводят curval к диапазону от 0 до maxval. Этот атрибут не следует изменять напрямую.

ProgressBar.maxval

Максимальное значение индикатора выполнения (тип int или long); индикатор (стиль термометр) заполнен, когда curval равно maxval. Если maxval равно 0, индикатор будет индетерминированным (столбик парикмахерской). Этот атрибут не следует изменять напрямую.

ProgressBar.title([newstr])

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

ProgressBar.label([newstr])

Устанавливает текст в поле выполнения диалога выполнения равным newstr.

ProgressBar.set(value[, max])

Устанавливает curval индикатора выполнения в value, а также maxval в max, если последнее указано. value сначала приводится к диапазону от 0 до maxval. Индикатор-термометр обновляется для отражения изменений, включая изменение с индетерминированного на детерминированный и наоборот.

ProgressBar.inc([n])

Увеличивает curval индикатора выполнения на n или на 1, если n не указан. (Обратите внимание, что n может быть отрицательным, в этом случае происходит уменьшение.) Индикатор выполнения обновляется для отражения изменения. Если индикатор индетерминированный, это вызывает один «оборот» столбика парикмахерской. Полученное curval приводится к диапазону от 0 до maxval, если приращение выводит его за этот диапазон.