Tkinter入门
前页 | 第九章. 标准输入框 | 后页

# 数据输入

tkSimpleDialog 为下面的简单的对话框提供了一个接口.

## 字符串

tkSimpleDialog 模块中的askstring函数提示用户输入一个字符串.你需要指定对话框标题和提示内容,当用户关闭对话框时返回.提示内容中可以假如换行符.

`tkSimpleDialog.askstring(title, prompt [,options])`. 要求用户输入一个字符串值.如果用户按下回车或者点击OK,那么这个函数将返回一个字符串.如果用户按Esc键取消,或者点击Cancel按钮,则返回 None.

图例 9-4. askstring

下面的选项可被这个函数使用:

表 9-2. askstring 选项

选项 | 类型 | 描述
--- | --- | ---
`initialvalue` | 字符串 | 初始值,如果没有则为空.
`parent` | 组件 | 指定一个窗口将消息框放在其上方,当消息框关闭时,窗口焦点将返回到这个指定窗口上.

## 数值

askinteger 和 askfloat 函数与 askstring 很相似, 但是它们只可以接受整数或浮点数, 你也可以分别使用 minvalue 和 maxvalue 选项显示用户的输入范围:

`tkSimpleDialog.askinteger(title, prompt [,options])`. 要求用户输入一整数. 如果输入值不是有效整数或浮点数,一个消息框将弹出,原有对话框不会被关闭.和 askstring 函数一样, 如果用户取消输入则返回 None .

`tkSimpleDialog.askfloat(title, prompt [,options])`. 同上,只是它返回一浮点值.

图例 9-5. askinteger, askfloat

下面的函数可被这两个函数使用:

Table 9-3. askinteger and askfloat 选项

选项 | 类型 | 描述
--- | --- | ---
`initialvalue` | 整数或小数 | 初始值,如果没有则为空.
`parent` | widget | 指定一个窗口将消息框放在其上方,当消息框关闭时,窗口焦点将返回到这个指定窗口上.
`minvalue` | 整数或小数 | 最小值.如果输入数字小于这个值,一个消息框将在用户点击OK时弹出,这个对话仍不会被关闭.
`maxvalue` | 最大值 | 最大值.如果输入数字大于这个值,一个消息框将在用户点击OK时弹出,这个对话仍不会被关闭.

## 文件名

tkFileDialog 可以从用户处得到一个文件名. 这个模块提供了两个预制函数,一个用来得到一个需要打开的已存在的文件名,另一个用来得到一个新文件名,来保存文件.

`tkFileDialog.askopenfilename([options])`. 如果对话框被用户取消,函数将返回 None.

`tkFileDialog.asksaveasfilename([options])`.

图例 9-6. askopenfilename, asksaveasfilename

下面的选项可以被 askopenfilename 和 asksavefilename 函数使用:

Table 9-4. askopenfilename options

选项 | 类型 | 描述
--- | --- | ---
`defaultextension` | 字符串 | 保存文件名的缺省扩展名,(这个选项仅对save as对话框有效).
`filetypes` | 列表 | 元组的序列(标签, 模式). 一个标签可以有若干个模式,使用"*"可以匹配所有文件.一个例子: filetypes=[('Python source', '*.py *.pyw'),('All files', '*')
`initialdir` | 字符串 | 初始路径.
`initialfile` | 字符串 | 初始文件
`parent` | 组件 | 指定一个窗口将消息框放在其上方,当消息框关闭时,窗口焦点将返回到这个指定窗口上.
`标题` | 字符串 | 消息框标题.

## 颜色

The tkColorChooser 模块可以从用户处得到一RGB颜色值.

`tkColorChooser.askcolor([color [,options]])`. 这个预制函数会返回两个值,第一个值是一个用RGB三原色表示的颜色值(RGB值 red(红), green(绿), blue(蓝)的值,这个值的范围是从0到255的整数), 第二个是一个Tk颜色字符串. 你可以向这个函数传递一个颜色值(任意格式)来预设对话框初始显示的颜色.

如果用户取消操作,则返回(None, None)

图例 9-7. askcolor

下面的选项可被 askcolor 函数使用:

表 9-5. askcolor Options

选项 | 类型 | 描述
--- | --- | ---
`initialcolor` | 颜色 | 作为对话框初始选择的颜色( 可以用RGB值或者Tk颜色字符串表示). (预制函数的第一个参数).
`parent` | 组件 | 指定一个窗口将消息框放在其上方,当消息框关闭时,窗口焦点将返回到这个指定窗口上.
`标题` | 字符串 | 消息框标题.

前页 | 首页 | 后页
标准对话框 | 向上 | 对话框窗口