3.4 对话框

GUI 的一个重要组成部分是弹出式对话框,即在程序执行过程中弹出一个窗口,用于与 用户的特定交互。Tkinter 提供了若干种标准对话框,用于显示消息、选择文件、输入数据 和选择颜色。

tkMessageBox 模块

本模块定义了若干种简单的标准对话框和消息框,它们可通过调用以下函数来创建:askokcancel、askquestion、askretrycancel、askyesno、showerror、showinfo 和 showwarning。 这些函数的调用语法是:

  1. function(title, message, options)

其中 title 设置窗口标题,message 设置消息内容(可用\n 显示多行消息),options 用于设置 各种选项。

这些函数的返回值依赖于用户所选择的按钮。函数 askokcancel、askretrycancel 和 askyesno 返回布尔值:True 表示选择了 OK 或 Yes,False 表示 No 或 Cancel。函数 askquestion 返回字符串 u”yes”或 u”no” ,分别表示选择了 Yes 和 No 按钮。

参数 options 可设置以下选项:

  1. default = constant

指定缺省按钮。其中 constant 的值可以取 CANCEL、IGNORE、NO、OK、RETRY 或 YES。如果未指定,则第一个按钮(”OK”、”Yes”或”Retry”)将成为缺省按钮。

  1. icon = constant

指定用什么图标。其中 constant 的值可以取 ERROR、INFO、QUESTION 或 WARNING。

  1. parent = window

指定消息框的父窗口。如果未指定,则父窗口为根窗口。关闭消息框时,焦点返回到父 窗口。

tkFileDialog 模块

本模块定义了两种弹出式对话框,分别用于打开文件和保存文件的场合。通过调用函数askopenfilename 和 asksaveasfilename 来创建所需对话框,调用语法是:

  1. function(options)

如果用户选择了一个文件,则函数的返回值是所选文件的完整路径;如果用户选择了“取 消”按钮,则返回一个空串。参数 options 可用的选项包括:

  1. defaultextension = string

缺省文件扩展名。string 是以”.”开头的字符串。

  1. filetypes = [(filetype,pattern),...]

用若干个二元组来限定出现在对话框中的文件类型。每个二元组中的 filetype 指定文件 类型(即扩展名),pattern 指定文件名模式。这些信息将出现在对话框中的“文件类型”下 拉框中。

  1. initialdir = dir

指定初始显示的目录路径。缺省值为当前工作目录。

  1. initialfile = file

指定在“文件名”域初始显示的文件名。

  1. parent = window

指定对话框的父窗口。缺省值为根窗口。

  1. title = string

指定对话框窗口的标题。

tkSimpleDialog 模块

本模块用于从用户输入数据。通过调用函数 askinteger、askfloat 和 askstring 弹出输入对 话框。这些函数的调用语法是:

  1. function(title, prompt, options)

其中 title 指定对话框窗口的标题,prompt 指定对话框中的提示信息,options 是一些选项。 返回值是用户输入的数据。参数 options 可设置的一些选项包括:

  1. initialvalue = value

指定对话框输入域中的初始值。

  1. minvalue = value

指定合法输入的最小值。

  1. maxvalue = value

指定合法输入的最大值。

tkColorChooser 模块

本模块提供选择颜色的对话框。通过调用函数 askcolor 即可弹出颜色对话框:

  1. result = askcolor(color,options)

其中参数 color 指定显示的初始颜色,缺省值为淡灰色。参数 options 可设置的选项包括:

  1. title = text

指定对话框窗口的标题,缺省为“颜色”。

  1. parent = window

指定对话框的父窗口。缺省为根窗口。 如果用户点击“确定”按钮,返回值为元组(triple, color),其中 triple 是包含红绿蓝分量的 三元组(R, G, B),各分量值的范围是[0,255],color 是所选颜色(Tkinter 颜色对象)。如果用 户点击“取消”按钮,则返回值为(None, None)。