Tkinter 对话框

tkinter.simpledialog --- 标准 Tkinter 输入对话框

源码: Lib/tkinter/simpledialog.py


tkinter.simpledialog 模块包含一些便捷类和函数可用来创建简单的模态对话框以便从用户获取值。

tkinter.simpledialog.askfloat(title, prompt, *, initialvalue=None, minvalue=None, maxvalue=None, parent=None)
tkinter.simpledialog.askinteger(title, prompt, *, initialvalue=None, minvalue=None, maxvalue=None, parent=None)
tkinter.simpledialog.askstring(title, prompt, *, initialvalue=None, show=None, parent=None)

提示用户输入所要求类型的值并将其返回,或者如果对话框被取消则返回 None。

title 为对话框标题而 prompt 为显示在输入框上方的消息。 initialvalue 是放在输入框内的初始值。parent 是显示对话框的窗口。 askinteger() 和 askfloat() 还接受 minvalue 和 maxvalue,用于设置可接受的值范围。 askstring() 还接受 show,用作输入文本的屏蔽字符,例如用 '*' 来隐藏密码。

class tkinter.simpledialog.Dialog(parent, title=None)

自定义对话框的基类。 将其实例化将显示模态对话框并在用户关闭它时返回;输入的值将在 result 属性中可用。

result

由 apply() 产生的值,或者如果对话框被取消则为 None。

body(master)

可以覆盖,用于构建对话框的界面,并返回初始焦点所在的部件。

buttonbox()

加入 OK 和 Cancel 按钮的默认行为。重写自定义按钮布局。

validate()

验证用户输入的数据。如果有效则返回 true,此时对话框将继续执行 apply() ;返回 false 则保持对话框打开。默认实现总是返回 true;重写它以检查输入。

apply()

处理用户输入的数据,例如将其存储在 result 属性中。在 validate() 成功之后、对话框销毁之前调用。默认实现不执行任何操作;重写它以对结果执行操作或存储结果。

destroy()

销毁对话框窗口,清除对拥有初始焦点的部件的引用。

class tkinter.simpledialog.SimpleDialog(master, text='', buttons=[], default=None, cancel=None, title=None, class_=None)

一个简单的模态对话框,在一排由 buttons 给出标签的按钮上方显示消息 text ,并返回用户按下的按钮的索引。 default 是通过回车键激活的按钮索引, cancel 是通过窗口管理器关闭窗口时返回的索引, title 是窗口标题,而 class_ 是窗口的 Tk 类名。

go()

显示对话框,等待用户按下按钮或关闭窗口,并返回所选按钮的索引。

tkinter.filedialog --- 文件选择对话框

源码: Lib/tkinter/filedialog.py


tkinter.filedialog 模块提供了用于创建文件/目录选择窗口的类和工厂函数。

原生的载入/保存对话框

以下类和函数提供了文件对话窗口,这些窗口带有原生外观,具备可定制行为的配置项。这些关键字参数适用于下列类和函数:

parent —— 将对话框置于其上方的窗口
title —— 窗口的标题
initialdir —— 对话框的启动目录
initialfile —— 打开对话框时选中的文件
filetypes —— (标签,匹配模式)元组构成的列表,允许使用“*”通配符
defaultextension —— 默认的扩展名,用于加到文件名后面(保存对话框)。
multiple —— 为 True 则允许多选

静态工厂函数

调用以下函数时会创建一个模态的、具有原生外观的对话框,等待用户选择并返回该选择。具体的返回值取决于该函数(见下文);当对话框被取消时,它是一个空字符串、一个空元组或 None 。该空值的精确类型可能因平台和 Tk 版本的不同而异,因此请测试结果的真值而不是将其与特定值进行比较。

tkinter.filedialog.askopenfile(mode='r', **options)
tkinter.filedialog.askopenfiles(mode='r', **options)

创建一个 Open 对话框。 askopenfile() 返回打开的文件对象,如果对话框被取消则返回 None 。 askopenfiles() 返回打开的文件对象列表,如果取消则返回一个空元组。文件以 mode 模式打开(默认为只读 'r' )。

tkinter.filedialog.asksaveasfile(mode='w', **options)

创建一个 SaveAs 对话框并返回打开的文件对象,如果对话框被取消则返回 None 。文件以 mode 模式打开(默认为 'w' )。

tkinter.filedialog.askopenfilename(**options)
tkinter.filedialog.askopenfilenames(**options)

创建一个 Open 对话框。 askopenfilename() 以字符串形式返回所选文件名,如果对话框被取消则返回空字符串。 askopenfilenames() 返回所选文件名的元组,如果取消则返回空元组。

tkinter.filedialog.asksaveasfilename(**options)

创建一个 SaveAs 对话框并以字符串形式返回所选文件名,如果对话框被取消则返回空字符串。

tkinter.filedialog.askdirectory(**options)

提示用户选择一个目录,并以字符串形式返回其路径,如果对话框被取消则返回空字符串。附加关键字选项: mustexist - 如果为 true,则用户只能选择现有目录(默认为 false)。

class tkinter.filedialog.Open(master=None, **options)
class tkinter.filedialog.SaveAs(master=None, **options)
class tkinter.filedialog.Directory(master=None, **options)

上述三个类提供了用于加载和保存文件以及选择目录的原生对话框窗口。

便捷类

以下类用于从头开始创建文件/目录窗口。不会模仿当前系统的原生外观。

备注

为了实现自定义的事件处理和行为,应继承 FileDialog 类。

class tkinter.filedialog.FileDialog(master, title=None)

创建一个简单的文件选择对话框。

cancel_command(event=None)

触发对话窗口的终止。

dirs_double_event(event)

目录双击事件的处理程序。

dirs_select_event(event)

目录单击事件的处理程序。

files_double_event(event)

文件双击事件的处理程序。

files_select_event(event)

文件单击事件的处理程序。

filter_command(event=None)

按目录筛选文件。

get_filter()

获取当前使用的文件筛选器。

get_selection()

获取当前选中项。

go(dir_or_file=os.curdir, pattern='*', default='', key=None)

显示对话框并启动事件循环。

ok_event(event)

退出对话框并返回当前选中项。

ok_command()

当用户确认当前选择时调用。基类实现接受该选择并关闭对话框; LoadFileDialog 和 SaveFileDialog 重写了该方法以首先检查选择。

quit(how=None)

退出对话框并返回文件名。

set_filter(dir, pat)

设置文件筛选器。

set_selection(file)

将当前选中文件更新为 file。

class tkinter.filedialog.LoadFileDialog(master, title=None)

FileDialog 的一个子类,创建用于选取已有文件的对话窗口。

ok_command()

检测有否给出文件,以及选中的文件是否存在。

class tkinter.filedialog.SaveFileDialog(master, title=None)

FileDialog 的一个子类,创建用于选择目标文件的对话窗口。

ok_command()

检测选中项是否指向一个非目录的有效文件。如果选中了已存在的文件,则需要用户进行确认。

tkinter.commondialog --- 对话框窗口模板Dialog window templates

源码: Lib/tkinter/commondialog.py


The tkinter.commondialog module provides the Dialog class that is the base class for dialogs defined in other supporting modules.

class tkinter.commondialog.Dialog(master=None, **options)
show(**options)

显示对话窗口。

tkinter.dialog --- 经典的 Tk 对话框

源代码: Lib/tkinter/dialog.py


tkinter.dialog 模块提供了一个基于经典(非主题化)Tk 部件构建的简单模态对话框。

tkinter.dialog.DIALOG_ICON

适合用作 Dialog 的 bitmap 的位图名称('questhead')。

class tkinter.dialog.Dialog(master=None, cnf={}, **kw)

显示一个基于经典(非主题化)Tk 部件构建的模态对话框,并等待用户按下其中的一个按钮。通过 cnf 或作为关键字参数给出的选项都是必需的: title (窗口标题)、 text (消息内容)、 bitmap (位图图标名称,例如 DIALOG_ICON )、 default (默认按钮的索引)以及 strings (按钮标签序列)。构造之后, num 属性保存用户按下的按钮的索引。

destroy()

不执行任何操作。对话框窗口在构造器返回之前会自动销毁,因此该方法无需再执行任何操作。