37.5. EasyDialogs — 基本的 Macintosh 对话框 — Python 文档
37.5. EasyDialogs — 基本的 Macintosh 对话框
EasyDialogs 模块包含一些用于 Macintosh 的简单对话框。 对话框在单独的应用程序中启动,该应用程序出现在 Dock 中,必须单击才能显示对话框。 所有例程都采用一个可选的资源 ID 参数 id,可以使用该参数覆盖用于对话框的 DLOG
资源,前提是对话框项目(类型和项目编号)对应于默认 DLOG
资源。 有关详细信息,请参阅源代码。
笔记
此模块已在 Python 3.x 中删除。
EasyDialogs 模块定义了以下函数:
- EasyDialogs.Message(str[, id[, ok]])
- 显示带有消息文本 str 的模态对话框,最多 255 个字符长。 按钮文本默认为“OK”,但如果提供后者,则设置为字符串参数 ok。 当用户单击“确定”按钮时,控制权被返回。
- EasyDialogs.AskString(prompt[, default[, id[, ok[, cancel]]]])
- 要求用户通过模式对话框输入字符串值。 prompt 是提示信息,可选的 default 提供字符串的初始值(否则使用
""
)。 “确定”和“取消”按钮的文本可以使用 ok 和 cancel 参数进行更改。 所有字符串的长度最多为 255 个字节。 AskString() 返回输入的字符串或 None 以防用户取消。
- EasyDialogs.AskPassword(prompt[, default[, id[, ok[, cancel]]]])
- 要求用户通过模式对话框输入字符串值。 像 AskString(),但文本显示为项目符号。 这些参数与 AskString() 的含义相同。
- EasyDialogs.AskYesNoCancel(question[, default[, yes[, no[, cancel[, id]]]]])
- 显示一个对话框,提示 question 和三个标记为“是”、“否”和“取消”的按钮。 “是”返回
1
,“否”返回0
,“取消”返回-1
。 当按下 RETURN 键时,返回 default(或0
如果未提供 default)的值。 可以使用 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
异常。optionlist 是一个列表,用于确定从中选择允许选项的弹出菜单。 它的项目可以采用以下两种形式之一:optstr 或
(optstr, descr)
。 当存在时,descr 是一个简短的描述性字符串,当在弹出菜单中选择此选项时,它会显示在对话框中。 optstrs 和命令行参数的对应关系是: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] )
发布一个对话框,要求用户打开文件,如果用户取消,则返回选定的文件或 无 。 message 是要显示的文本消息,typeList 是允许的 4 字符文件类型列表,defaultLocation 是路径名,
FSSpec
或 [最初显示的文件夹的 X161X],location 是屏幕上显示对话框的(x, y)
位置,actionButtonLabel 是一个字符串来代替显示在“确定”按钮中的“打开”中,cancelButtonLabel 是要显示的字符串,而不是取消按钮中的“取消”,wanted 是想要作为返回值的类型:[X520X ]str、unicode、FSSpec
、FSRef
及其子类型是可以接受的。有关其他参数的说明,请参阅 Apple 导航服务文档和 EasyDialogs 源代码。
- EasyDialogs.AskFileForSave([message] [, savedFileName] [, defaultLocation] [, defaultOptionFlags] [, location] [, clientName] [, windowTitle] [, actionButtonLabel] [, cancelButtonLabel] [, preferenceKey] [, popupExtension] [, fileType] [, fileCreator] [, eventProc] [, wanted] )
- 发布一个对话框,询问用户要保存的文件,如果用户取消,则返回选定的文件或 无 。 savedFileName 是要保存到的文件名的默认值(返回值)。 有关其他参数的说明,请参阅 AskFileForOpen()。
- EasyDialogs.AskFolder([message] [, defaultLocation] [, defaultOptionFlags] [, location] [, clientName] [, windowTitle] [, actionButtonLabel] [, cancelButtonLabel] [, preferenceKey] [, popupExtension] [, eventProc] [, filterProc] [, wanted] )
- 发布一个对话框,要求用户选择一个文件夹,如果用户取消,则返回所选文件夹或 无 。 有关参数的说明,请参阅 AskFileForOpen()。
37.5.1. 进度条对象
ProgressBar 对象提供对无模式进度条对话框的支持。 支持确定(温度计样式)和不确定(理发杆样式)进度条。 柱线将确定其最大值是否大于零; 否则将是不确定的。
2.2 版更改: 添加了对不确定样式进度条的支持。
创建后立即显示该对话框。 如果按下对话框的“取消”按钮,或者如果输入 Cmd-. 或 ESC,则对话框窗口将被隐藏并且 KeyboardInterrupt
被提升(但请注意在下一次更新进度条之前不会发生此响应,通常通过调用 inc()
或 set())。 否则,该栏将保持可见,直到 ProgressBar 对象被丢弃。
ProgressBar 对象具有以下属性和方法:
- ProgressBar.maxval
- 进度条的最大值(整型或长整型); 当 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])
- 如果未提供 n,则将进度条的 curval 增加 n 或
1
。 (请注意,n 可能是负数,在这种情况下,效果是递减。)更新进度条以反映更改。 如果杆是不确定的,这会导致理发杆“旋转”一次。 如果递增导致其落在此范围之外,则生成的 curval 将强制介于 0 和 maxval 之间。