3.4 对话框
最后更新于:2022-04-02 00:32:43
### 3.4 对话框
GUI 的一个重要组成部分是弹出式对话框,即在程序执行过程中弹出一个窗口,用于与 用户的特定交互。Tkinter 提供了若干种标准对话框,用于显示消息、选择文件、输入数据 和选择颜色。
tkMessageBox 模块
本模块定义了若干种简单的标准对话框和消息框,它们可通过调用以下函数来创建:askokcancel、askquestion、askretrycancel、askyesno、showerror、showinfo 和 showwarning。 这些函数的调用语法是:
```
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 可设置以下选项:
```
default = constant
```
指定缺省按钮。其中 constant 的值可以取 CANCEL、IGNORE、NO、OK、RETRY 或 YES。如果未指定,则第一个按钮("OK"、"Yes"或"Retry")将成为缺省按钮。
```
icon = constant
```
指定用什么图标。其中 constant 的值可以取 ERROR、INFO、QUESTION 或 WARNING。
```
parent = window
```
指定消息框的父窗口。如果未指定,则父窗口为根窗口。关闭消息框时,焦点返回到父 窗口。
tkFileDialog 模块
本模块定义了两种弹出式对话框,分别用于打开文件和保存文件的场合。通过调用函数askopenfilename 和 asksaveasfilename 来创建所需对话框,调用语法是:
```
function(options)
```
如果用户选择了一个文件,则函数的返回值是所选文件的完整路径;如果用户选择了“取 消”按钮,则返回一个空串。参数 options 可用的选项包括:
```
defaultextension = string
```
缺省文件扩展名。string 是以"."开头的字符串。
```
filetypes = [(filetype,pattern),...]
```
用若干个二元组来限定出现在对话框中的文件类型。每个二元组中的 filetype 指定文件 类型(即扩展名),pattern 指定文件名模式。这些信息将出现在对话框中的“文件类型”下 拉框中。
```
initialdir = dir
```
指定初始显示的目录路径。缺省值为当前工作目录。
```
initialfile = file
```
指定在“文件名”域初始显示的文件名。
```
parent = window
```
指定对话框的父窗口。缺省值为根窗口。
```
title = string
```
指定对话框窗口的标题。
tkSimpleDialog 模块
本模块用于从用户输入数据。通过调用函数 askinteger、askfloat 和 askstring 弹出输入对 话框。这些函数的调用语法是:
```
function(title, prompt, options)
```
其中 title 指定对话框窗口的标题,prompt 指定对话框中的提示信息,options 是一些选项。 返回值是用户输入的数据。参数 options 可设置的一些选项包括:
```
initialvalue = value
```
指定对话框输入域中的初始值。
```
minvalue = value
```
指定合法输入的最小值。
```
maxvalue = value
```
指定合法输入的最大值。
tkColorChooser 模块
本模块提供选择颜色的对话框。通过调用函数 askcolor 即可弹出颜色对话框:
```
result = askcolor(color,options)
```
其中参数 color 指定显示的初始颜色,缺省值为淡灰色。参数 options 可设置的选项包括:
```
title = text
```
指定对话框窗口的标题,缺省为“颜色”。
```
parent = window
```
指定对话框的父窗口。缺省为根窗口。 如果用户点击“确定”按钮,返回值为元组(triple, color),其中 triple 是包含红绿蓝分量的 三元组(R, G, B),各分量值的范围是[0,255],color 是所选颜色(Tkinter 颜色对象)。如果用 户点击“取消”按钮,则返回值为(None, None)。
';