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)。
';