37.5. EasyDialogs-基本的 Macintosh 对话框

EasyDialogs模块包含一些用于 Macintosh 的简单对话框。对话框是在单独的应用程序中启动的,该应用程序出现在扩展坞中,必须单击才能显示对话框。所有例程都带有一个可选的资源 ID 参数* id *,如果对话框项与默认DLOG资源中的项相对应(类型和项号),则该参数可以覆盖用于对话框的DLOG资源。有关详细信息,请参见源代码。

Note

该模块已在 Python 3.x 中删除。

EasyDialogs模块定义以下Function:

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

    • 显示带有消息文本* str 的模式对话框,该文本最多为 255 个字符。按钮文本默认为“ OK”,但设置为字符串参数 ok *(如果提供了后者)。当用户单击“确定”按钮时,将返回控件。
  • EasyDialogs. AskString(提示 [,默认 [,* id * [,确定 [,取消]]]])

    • 要求用户pass模式对话框 Importing 字符串值。 * prompt 是提示消息,可选的 default 提供字符串的初始值(否则使用"")。可以使用 ok cancel *参数更改“确定”和“取消”按钮的文本。所有字符串的最大长度为 255 个字节。 AskString()返回 Importing 的字符串,或者None以防用户取消。
  • EasyDialogs. AskPassword(提示 [,默认 [,* id * [,确定 [,取消]]]])

    • 要求用户pass模式对话框 Importing 字符串值。类似于AskString(),但文本显示为项目符号。自变量与AskString()的含义相同。
  • EasyDialogs. AskYesNoCancel((* question * [,* default * [,* yes * [,* no * [,* cancel * [,* id *]]]]]])

    • 显示一个带有提示问题和三个标记为“是”,“否”和“取消”的按钮的对话框。对于“是”,返回1,对于“否”,返回0,对于“取消”,返回-1。按下 RETURN 键时,将返回* default 的值(如果未提供 default ,则返回0)。可以使用 yes,* no cancel *参数更改按钮的文本;为了防止出现按钮,请为相应的参数提供""
  • EasyDialogs. ProgressBar([标题 [,* maxval * [,标签 [,* id *]]]])

    • 显示无模式进度栏对话框。这是下面描述的ProgressBar类的构造函数。 * title 是显示的文本字符串(默认为“工作中……”), maxval 是进度完成时的值(默认为0,指示仍有待执行的工作量不确定), label *为进度条本身上方显示的文本。
  • EasyDialogs. GetArgv(* [optionlist [命令列表[,addoldfile [,addnewfile [,addfolder [,id]]]]]]] *)

    • 显示一个对话框,该对话框可帮助用户构造命令行参数列表。以sys.argv格式返回列表,适合作为参数传递给getopt.getopt()。 * addoldfile addnewfile addfolder *是布尔参数。如果为非零值,则它们使用户能够在命令行中分别插入现有文件,(可能)尚不存在的文件和文件夹的路径。 (注意:选项参数必须在命令行中出现在文件和文件夹参数之前,以便被getopt.getopt()识别。)可以pass将包含空格的参数括在单引号或双引号中来指定它们。如果用户按下“取消”按钮,则会引发SystemExit异常。
  • optionlist 是一个列表,用于确定从中选择允许的选项的弹出菜单。它的项目可以采用以下两种形式之一: optstr (optstr, descr)。如果存在 descr *,它是一个简短的描述性字符串,当在弹出菜单中选择此选项时,它将显示在对话框中。 * optstr *与命令行参数之间的对应关系为:
* optstr *格式Command-line format
x-x(短选项)
x:x=-x(带值的简短选项)
xyz--xyz(长选项)
xyz:xyz=--xyz(带值的长期权)
  • commandlist 是形式为 cmdstr (cmdstr, descr)的项目列表,其中 descr *如上。 * cmdstr 将出现在弹出菜单中。选中后, cmdstr *的文本将按原样追加到命令行,但尾部的':''='(如果存在)将被修剪掉。

2.0 版中的新Function。

  • EasyDialogs. AskFileForOpen(* [message] [,typeList] [,defaultLocation] [,defaultOptionFlags] [,location] [,clientName] [,windowTitle] [,actionButtonLabel] [,cancelButtonLabel] [,preferenceKey] [,popupExtension] [,eventProc] [,PreviewProc] [,filterProc] [,想要] *)
    • 发布一个对话框,询问用户要打开的文件,然后返回所选文件;如果用户取消,则返回None。 * message 是要显示的文本消息, typeList 是允许的 4 个字符的文件类型列表, defaultLocation 是路径名称,最初显示的文件夹的FSSpecFSRef location 是屏幕上的(x, y)位置显示对话框的位置, actionButtonLabel 是要显示的字符串,而不是“确定”按钮中的“打开”, cancelButtonLabel 是要显示的字符串,而不是“取消”按钮中的“取消”, wanted *是值的类型希望作为回报:strunicodeFSSpecFSRef及其子类型是可以接受的。

有关其他参数的说明,请参阅 Apple Navigation Services 文档和EasyDialogs源代码。

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

    • 发布对话框,询问用户要保存的文件,然后返回所选文件;如果用户取消,则返回None。 * savedFileName *是要保存到的文件名的默认值(返回值)。有关其他参数的说明,请参见AskFileForOpen()
  • EasyDialogs. AskFolder(* [message] [,defaultLocation] [,defaultOptionFlags] [,location] [,clientName] [,windowTitle] [,actionButtonLabel] [,cancelButtonLabel] [,preferenceKey] [,popupExtension] [,eventProc] [,filterProc] [,想要] *)

    • 发布一个对话框,要求用户选择一个文件夹,然后返回所选文件夹;如果用户取消,则返回None。有关参数的说明,请参见AskFileForOpen()

See also

  • 导航服务参考

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

37.5.1. ProgressBar 对象

ProgressBar对象提供对无模式进度栏对话框的支持。支持确定型(温度计样式)和不确定型(理发杆样式)进度条。如果其最大值大于零,则将确定该小节;否则,它将不确定。

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

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

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

  • ProgressBar. curval

    • 进度条的当前值(整数或长整数类型)。常规访问方法将curval强制在0maxval之间。此属性不应直接更改。
  • 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增加 n 1。 (请注意, n *可能为负,在这种情况下,效果为递减.)进度条将更新以反映更改。如果杆不确定,这将导致理发杆“旋转”。如果结果curval递增导致其落在该范围之外,则将其强制在 0 和maxval之间。