37.5. EasyDialogs — 基本的 Macintosh 对话框 — Python 文档

来自菜鸟教程
Python/docs/2.7/library/easydialogs
跳转至:导航、​搜索

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 提供字符串的初始值(否则使用 "")。 “确定”和“取消”按钮的文本可以使用 okcancel 参数进行更改。 所有字符串的长度最多为 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)的值。 可以使用 yesnocancel 参数更改按钮的文本; 要防止按钮出现,请为相应的参数提供 ""
EasyDialogs.ProgressBar([title[, maxval[, label[, id]]]])
显示无模式进度条对话框。 这是下面描述的 ProgressBar 类的构造函数。 title 是显示的文本字符串(默认为“Working...”),maxval 是进度完成的值(默认为 0,表示不确定数量工作还有待完成),而 label 是显示在进度条本身上方的文本。
EasyDialogs.GetArgv([optionlist[ commandlist[, addoldfile[, addnewfile[, addfolder[, id]]]]]])

显示帮助用户构建命令行参数列表的对话框。 以 sys.argv 格式返回列表,适合作为参数传递给 getopt.getopt()addoldfileaddnewfileaddfolder 是布尔参数。 当非零时,它们使用户能够分别将现有文件、(可能)尚不存在的文件和文件夹的路径插入到命令行中。 (注意:选项参数必须出现在命令行中的文件和文件夹参数之前才能被 getopt.getopt() 识别。)包含空格的参数可以通过将它们括在单引号或双引号中来指定。 如果用户按下“取消”按钮,则会引发 SystemExit 异常。

optionlist 是一个列表,用于确定从中选择允许选项的弹出菜单。 它的项目可以采用以下两种形式之一:optstr(optstr, descr)。 当存在时,descr 是一个简短的描述性字符串,当在弹出菜单中选择此选项时,它会显示在对话框中。 optstrs 和命令行参数的对应关系是:

optstr 格式

命令行格式

x

-x(短选项)

x:x=

-x(带值的短选项)

xyz

--xyz(长选项)

xyz:xyz=

--xyz(带值的长选项)

commandlistcmdstr(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、unicodeFSSpecFSRef及其子类型是可以接受的。

有关其他参数的说明,请参阅 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()

也可以看看

导航服务参考
导航服务的程序员参考文档,它是 Carbon 框架的一部分。


37.5.1. 进度条对象

ProgressBar 对象提供对无模式进度条对话框的支持。 支持确定(温度计样式)和不确定(理发杆样式)进度条。 柱线将确定其最大值是否大于零; 否则将是不确定的。

2.2 版更改: 添加了对不确定样式进度条的支持。


创建后立即显示该对话框。 如果按下对话框的“取消”按钮,或者如果输入 Cmd-.ESC,则对话框窗口将被隐藏并且 KeyboardInterrupt 被提升(但请注意在下一次更新进度条之前不会发生此响应,通常通过调用 inc()set())。 否则,该栏将保持可见,直到 ProgressBar 对象被丢弃。

ProgressBar 对象具有以下属性和方法:

ProgressBar.curval
进度条的当前值(整数或长整数类型)。 正常访问方法在 0maxval 之间强制 curval。 不应直接更改此属性。
ProgressBar.maxval
进度条的最大值(整型或长整型); 当 curval 等于 maxval 时,进度条(温度计样式)已满。 如果 maxval0,条形将是不确定的(理发杆)。 不应直接更改此属性。
ProgressBar.title([newstr])
将进度对话框标题栏中的文本设置为 newstr
ProgressBar.label([newstr])
将进度对话框的进度框中的文本设置为 newstr
ProgressBar.set(value[, max])
将进度条的 curval 设置为 value,并将 maxval 设置为 max(如果提供后者)。 value 首先在 0 和 maxval 之间进行强制转换。 温度计条会更新以反映变化,包括从不确定到确定的变化,反之亦然。
ProgressBar.inc([n])
如果未提供 n,则将进度条的 curval 增加 n1。 (请注意,n 可能是负数,在这种情况下,效果是递减。)更新进度条以反映更改。 如果杆是不确定的,这会导致理发杆“旋转”一次。 如果递增导致其落在此范围之外,则生成的 curval 将强制介于 0 和 maxval 之间。