Messagebox 訊息提示框 - Tkinter 教學 ( Python )

Messagebox 訊息提示框 - Tkinter 教學 ( Python )

Messagebox 訊息提示框

Messagebox 訊息提示框是 tkinter 裡用來「提示」或「詢問」使用者的元件,可以設定只有一顆按鈕或兩顆可二擇一的按鈕,這篇教學會介紹如何在 tkinter 中使用 Messagebox 訊息提示框。

快速導覽:

Messagebox 的種類

使用 Messagebox

取得 Messagebox 的選擇結果

因為 Google Colab 不支援 tkinter,所以請使用本機環境 ( 參考:使用 Python 虛擬環境 ) 或使用 Anaconda Jupyter 進行實作 ( 參考:使用 Anaconda )。

Messagebox 的種類

載入 tkinter 的 messagebox 模組後,就能在視窗中呼叫並顯示 messagebox,messagebox 有下列幾個種類,分別會有各自不同的按鈕。

方法種類

說明

showinfo

普通訊息,一個關閉按鈕。

showwarning

警告訊息,一個關閉按鈕。

showerror

錯誤訊息,一個關閉按鈕。

askquestion

提問,兩個按鈕 ( yes/no )。

askyesno

是或否,兩個按鈕 ( yes/no )。

askokcancel

取消,兩個按鈕 ( ok/cancel )。

askretrycancel

重試,兩個按鈕 ( retry/cancel)。

使用 Messagebox

使用 messagebox 不需要搭配任何元件,載入 tkinter 的 messagebox 模組後,直接呼叫對應的方法就會出現訊息提示框,下方的程式碼會在執行後,出現通知的訊息框 ( 不同作業系統出現的預設畫面也會不同,範例使用的是 MacOS 作業系統 )。

import tkinter as tk

from tkinter import messagebox

messagebox.showinfo('showinfo', '訊息測試')

除了單純呼叫 messagebox,也可在透過與其他元件的互動後,透過函式呼叫顯示 messagebox,下方的例子執行後,點擊不同的按鈕就會出現不同的 messagebox。

import tkinter as tk

from tkinter import messagebox

root = tk.Tk()

root.title('oxxo.studio')

root.geometry('300x300')

def showinfo(): messagebox.showinfo('showinfo', 'showinfo')

btn_showinfo = tk.Button(root, text='showinfo', command=showinfo)

btn_showinfo.pack()

def showwarning(): messagebox.showwarning('showwarning', 'showwarning')

btn_showwarning = tk.Button(root, text='showwarning', command=showwarning)

btn_showwarning.pack()

def showerror(): messagebox.showerror('showerror', 'showerror')

btn_showerror = tk.Button(root, text='showerror', command=showerror)

btn_showerror.pack()

def askquestion(): messagebox.askquestion('askquestion', 'askquestion')

btn_askquestion = tk.Button(root, text='askquestion', command=askquestion)

btn_askquestion.pack()

def askyesno(): messagebox.askyesno('askyesno', 'askyesno')

btn_askyesno = tk.Button(root, text='askyesno', command=askyesno)

btn_askyesno.pack()

def askokcancel(): messagebox.askokcancel('askokcancel', 'askokcancel')

btn_askokcancel = tk.Button(root, text='askokcancel', command=askokcancel)

btn_askokcancel.pack()

def askretrycancel(): messagebox.askretrycancel('askretrycancel', 'askretrycancel')

btn_askretrycancel = tk.Button(root, text='askretrycancel', command=askretrycancel)

btn_askretrycancel.pack()

root.mainloop()

取得 Messagebox 的選擇結果

當使用者點擊 messagebox 的按鈕後,都會有一個回傳值,在函式裡取得這個回傳值,就可透過邏輯判斷進行對應的行為,下方的程式碼會取得使用者按下 yes 還是 no 的結果。

import tkinter as tk

from tkinter import messagebox

root = tk.Tk()

root.title('oxxo.studio')

root.geometry('300x300')

def askyesno():

result = messagebox.askyesno('askyesno', 'askyesno')

print(result)

btn_askyesno = tk.Button(root, text='askyesno', command=askyesno)

btn_askyesno.pack()

root.mainloop()

意見回饋

如果有任何建議或問題,可傳送「意見表單」給我,謝謝~

🎨 相关创意作品

手机自拍软件排行榜
365bat提现

手机自拍软件排行榜

📅 06-29 👁️ 2130
2000元左右“公认最好”的5款手机,“焊死”在购物车,降价直接入
当模特需要什么条件?想入行成为模特,你真的准备好了吗?