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

原始碼：Lib/tkinter/messagebox.py

`tkinter.messagebox` 模組提供了模板基底類別以及各種常用配置的便捷方法。訊息框 (message box) 是互動視窗 (modal)，會基於使用者的選擇回傳（`True`、`False`、`None`、`OK`、`CANCEL`、`YES`、`NO`）的子集。常見的訊息框樣式 (style) 和版面配置 (layout) 包括但不限於：

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

  建立一個訊息視窗，其中包含應用程式指定的訊息、一個圖示和一組按鈕。訊息視窗中的每個按鈕都有唯一的符號名稱作為識別（請參考 type 選項）。

  支援以下選項：

  > command

  >   指定當使用者關閉對話框 (dialog) 時要呼叫的函式。使用者按一下以關閉對話框的按鈕的名稱作為引數傳遞。此選項僅適用於 macOS。

  > default

  >   給出此訊息視窗的預設按鈕的符號名稱（`OK`、`CANCEL` 等）。如果未指定此選項，則對話框中的第一個按鈕將成為預設按鈕。

  > detail

  >   透過 message 選項指定將輔助訊息給主訊息。訊息詳細資訊將顯示在主要訊息下方，並且在作業系統支援的情況下，將以比主要訊息更不強調的字體顯示。

  > icon

  >   指定要顯示的圖示。如果未指定此選項，則會顯示 `INFO` 圖示。

  > message

  >   指定要在此訊息框中顯示的訊息。預設值為空字串。

  > parent

  >   使指定視窗成為訊息框的邏輯父視窗 (logical parent window)。訊息框顯示在其父視窗的頂部。

  > 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'