Tkinter's tkMessageBox
要使用Tkinter的MessageBox,首先要先將tkMessageBox package import進來。
import tkMessageBox
tkMessageBox的用法大概像下面這樣,依使用需求呼叫不同的方法,並帶入訊息視窗的標題、內文、以及一些額外的參數就可以了。
tkMessageBox.FunctionName(title, message [, options])
可以呼叫的方法有showinfo...
tkMessageBox.showinfo("showinfo demo", "Info")
showwarning...
tkMessageBox.showwarning("showwarning demo", "Warning")
showerror...
tkMessageBox.showerror("showerror demo", "Error")
這些是用來提示使用者訊息用的訊息框,另外也有用來詢問使用者動作的訊息框。像是askquestion...
tkMessageBox.askquestion("askquestion demo", "Sure?!")
askokcancel...
tkMessageBox.askokcancel("askokcancel demo", "OK?! CANCEL?!")
askyesno...
tkMessageBox.askyesno("askyesno demo", "Yes?! No?!")
以及askretrycancel...
tkMessageBox.askretrycancel("askretrycancel demo", "Retry?! Cancel?!")
在使用這種用來詢問使用者動作的訊息框時,我們可以帶入default參數下去指定預設選取的對話框按鈕。像是下面這樣:
tkMessageBox.askquestion("askquestion demo", "Sure?!") tkMessageBox.askokcancel("askokcancel demo", "OK?! CANCEL?!", default = "ok") tkMessageBox.askyesno("askyesno demo", "Yes?! No?!", default = "no") tkMessageBox.askretrycancel("askretrycancel demo", "Retry?! Cancel?!", default = "cancel")
若是要知道使用者選取的結果,我們可以直接接方法的回傳值,除了askquest是回傳yes/no外,其它的方法在按下OK或是Yes按鈕時是回傳True,按下No與Cancel按鈕是回傳False。
print "askquestion's dialogresult: %s" % tkMessageBox.askquestion("askquestion demo", "Sure?!") print "askokcancel's dialogresult: %s" % tkMessageBox.askokcancel("askokcancel demo", "OK?! CANCEL?!", default = "ok") print "askyesno's dialogresult: %s" % tkMessageBox.askyesno("askyesno demo", "Yes?! No?!", default = "no") print "askretrycancel's dialogresult: %s" % tkMessageBox.askretrycancel("askretrycancel demo", "Retry?! Cancel?!", default = "cancel")
最後附上完整的測試範例:
import tkMessageBox tkMessageBox.showinfo("showinfo demo", "Info") tkMessageBox.showwarning("showwarning demo", "Warning") tkMessageBox.showerror("showerror demo", "Error") print "askquestion's dialogresult: %s" % tkMessageBox.askquestion("askquestion demo", "Sure?!") print "askokcancel's dialogresult: %s" % tkMessageBox.askokcancel("askokcancel demo", "OK?! CANCEL?!", default = "ok") print "askyesno's dialogresult: %s" % tkMessageBox.askyesno("askyesno demo", "Yes?! No?!", default = "no") print "askretrycancel's dialogresult: %s" % tkMessageBox.askretrycancel("askretrycancel demo", "Retry?! Cancel?!", default = "cancel")