# `tkinter.messagebox` --- Tkinter 消息提示

源代码: Lib/tkinter/messagebox.py

`tkinter.messagebox` 模块提供了一个模板基类以及多种常用配置的便捷方法。消息框是模态的，将根据用户的选择返回 (`True`, `False`, `None`, `OK`, `CANCEL`, `YES`, `NO`) 的子集。常见的消息框样式和布局包括但不限于：

class tkinter.messagebox.Message(master=None, **options)

  创建一个带有应用专属消息、图标和按钮组的消息窗口。 消息窗口中的每个按钮均以唯一符号名称进行标识（参见 type 选项）。

  支持以下选项：

  > command

  >   指定当用户关闭对话框时要唤起的函数。 用户关闭对话框所点击的按钮名称将作为参数传入。 此选项仅在 macOS 上可用。

  > default

  >   指定消息窗口默认按钮的 符号名称 (`OK`, `CANCEL` 等等)。 如果未指定此选项，则对话框中的第一个按钮将成为默认。

  > detail

  >   为由 message 选项给出的主消息指定一条辅助消息。 消息详情将在主消息之下展示，并且在操作系统支持的情况下，会使用次于主消息的字体。

  > icon

  >   指定一个要显示的 图标。 如果未指定此选项，则将显示 `INFO` 图标。

  > message

  >   指定要在此消息框中显示的消息。 默认值为空字符串。

  > parent

  >   将指定的窗口设为该消息框的逻辑上级。 消息框将在其上级窗口之前显示。

  > title

  >   指定要作为消息框标题的字符串。 此选项在 macOS 上会被忽略，因为该平台的设计指导禁止在这种对话框中使用标题。

  > type

  >   安排显示一个 预定义的按钮集合。

  show(**options)

    显示一个消息窗口并等待用户选择某一个按钮。 然后返回所选择按钮的符号名称。 关键字参数可以覆盖在构造器中指定的选项。

信息消息框

tkinter.messagebox.showinfo(title=None, message=None, **options)

  创建并显示一个具有指定标题和消息的信息消息框。

警告消息框

tkinter.messagebox.showwarning(title=None, message=None, **options)

  创建并显示一个具有指定标题和消息的警告消息框。

tkinter.messagebox.showerror(title=None, message=None, **options)

  创建并显示一个具有指定标题和消息的错误消息框。

疑问消息框

tkinter.messagebox.askquestion(title=None, message=None, *, type=YESNO, **options)

  提出一个问题。 在默认情况下显示 `YES` 和 `NO` 按钮。 返回所选择按钮的符号名称。

tkinter.messagebox.askokcancel(title=None, message=None, **options)

  询问操作是否要继续。 显示 `OK` 和 `CANCEL` 按钮。 如果选择确定将返回 `True` 否则返回 `False`。

tkinter.messagebox.askretrycancel(title=None, message=None, **options)

  询问操作是否要重试。 显示 `RETRY` 和 `CANCEL` 按钮。 如果选择重试将返回 `True` 否则返回 `False`。

tkinter.messagebox.askyesno(title=None, message=None, **options)

  提出一个问题。 显示 `YES` 和 `NO` 按钮。 如果选择是则返回 `True` 否则返回 `False`。

tkinter.messagebox.askyesnocancel(title=None, message=None, **options)

  提出一个问题。 显示 `YES`, `NO` 和 `CANCEL` 按钮。 如果选择是则返回 `True`，取消则返回 `None`，否则返回 `False`。

按钮的符号名称：

tkinter.messagebox.ABORT = 'abort'

tkinter.messagebox.RETRY = 'retry'

tkinter.messagebox.IGNORE = 'ignore'

tkinter.messagebox.OK = 'ok'

tkinter.messagebox.CANCEL = 'cancel'

tkinter.messagebox.YES = 'yes'

tkinter.messagebox.NO = 'no'

预定义的按钮集合：

tkinter.messagebox.ABORTRETRYIGNORE = 'abortretryignore'

  显示符号名称为 `ABORT`, `RETRY` 和 `IGNORE` 的三个按钮。

tkinter.messagebox.OK = 'ok'

  显示符号名称为 `OK` 的一个按钮。

tkinter.messagebox.OKCANCEL = 'okcancel'

  显示符号名称为 `OK` 和 `CANCEL` 的两个按钮。

tkinter.messagebox.RETRYCANCEL = 'retrycancel'

  显示符号名称为 `RETRY` 和 `CANCEL` 的两个按钮。

tkinter.messagebox.YESNO = 'yesno'

  显示符号名称为 `YES` 和 `NO` 的两个按钮。

tkinter.messagebox.YESNOCANCEL = 'yesnocancel'

  显示符号名称为 `YES`, `NO` 和 `CANCEL` 的三个按钮。

图标图像：

tkinter.messagebox.ERROR = 'error'

tkinter.messagebox.INFO = 'info'

tkinter.messagebox.QUESTION = 'question'

tkinter.messagebox.WARNING = 'warning'