Содержание страницы
37.5. EasyDialogs – Основные диалоги Macintosh¶EasyDialogs – 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. Объекты ProgressBar¶ProgressBar 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, если приращение выводит его за этот диапазон.