Python透過messagebox,可以不用在視窗上面建立任何控制項就能輕鬆製作出有提示訊息的輸出對話方塊,而且此方法提供一些按鈕供程式設計者選擇,可以根據使用者所選取的按鈕,做為下一個程式流程的依據。其語法如下:

tkinter.messagebox.方法(標題, 訊息, [icon='error/info/question/warning'])

語法中的第三個參數 icon,用來指定對話方塊中顯示的圖示,可指定 error 錯誤 ❌、info 訊息 ℹ️、question 問題 ❓ 以及 warning 警告 ⚠️ 圖示。


messagebox 提供如下常用的方法,可在出現的對話方塊中顯示指定的按鈕,可
讓使用者依據按下的按鈕傳回對應的值:

方法按鈕與圖示說明傳回值 / 說明
askokcancel按:[確定] [取消]
askquestion按 [是] 鈕傳回 ‘yes’。
按 [否] 鈕傳回 ‘no’。
askretrycancel按:[重試] [取消]
askyesno按 [確定] 鈕傳回 True。
按 [取消] 鈕傳回 False。
showerror對話方塊顯示錯誤 icon,同時顯示 [確定] 鈕,此方法做為提示使用。
showinfo對話方塊顯示訊息 icon,同時顯示 [確定] 鈕,此方法做為提示使用。
showwarning對話方塊顯示警告 icon,同時顯示 [確定] 鈕,此方法做為提示訊息使用。

[簡例] 延續Entry01.py,當使用者輸入姓名與成績之後按下[確定]鈕即出現圖1詢問是否傳送成績。若按下[取消]鈕即顯示圖2告知取消傳送成績;若按下[確定]鈕則顯示圖3在標籤中顯示該位學生的成績與等級。(檔名:messagebox01.py)

[結果]

說明

  1. 2行:由tkinter 套件匯入messagebox 並更名為 msgbox,程式之後即可使用msgbox 來建立對話方塊。
  2. 5行:建立具有[確定]和[取消]鈕的對話方塊並詢問是否傳送成績,依據使用者按下的按鈕將指定的資料傳送給msgboxAns變數。按下[確定]鈕將 True指定給msgboxAns,按下[取消]鈕將False指定給msgboxAns
  3. 6~8行: 當msgboxAnsFalse時即顯示對話方塊告知取消傳送成績,接著離開fnOk()函式。

相關主題與延伸閱讀