tkMessageBox中含有8种弹出窗口。各窗口调用格式如下:
answer = tkMessageBox.function(title, message, options)
参数说明:
function:弹出窗口类型。详见示例代码的 msg_boxes 列表。
title:弹出窗口标题。
message:弹出信息,可以“\n”换行。
options: [ default = ... ] [ icon = ... ] [ parent = ... ]
返值:
—————————————————————————————————————————————————
—— | OK | Yes | Retry | No | Cancel | Close |
askokcancel | True | —— | False | False |
askretrycancel | True | —— | False | False |
askyesno | True | False | —— | —— |
askyesnocancel | True | False | None | None |
askquestion | u'yes' | u'no' | —— | —— |
showerror | ok | —— | —— | ok |
showinfo | ok | —— | —— | ok |
showwarning | ok | —— | —— | ok |
注: Close 列表示不选择给定选项,点右上角的“X”关闭弹窗时的返值。2种弹窗无法如此关闭。
示例代码如下:
import Tkinter as tk
import tkMessageBox as mb
msg_boxes = ['askokcancel', 'askquestion', 'askretrycancel', 'askyesno', 'askyesnocancel', 'showerror', 'showinfo', 'showwarning']
def demo0():
answer = mb.askokcancel(msg_boxes[0], 'Hello world')
print answer
def demo1():
answer = mb.askquestion(msg_boxes[1], 'Hello world')
print answer
def demo2():
answer = mb.askretrycancel(msg_boxes[2], 'Hello world')
print answer
def demo3():
answer = mb.askyesno(msg_boxes[3], 'Hello world')
print answer
def demo4():
answer = mb.askyesnocancel(msg_boxes[4], 'Hello world')
print answer
def demo5():
mb.showerror(msg_boxes[5], 'Hello world')
def demo6():
mb.showinfo(msg_boxes[6], 'Hello world')
def demo7():
mb.showwarning(msg_boxes[7], 'Hello world')
root = tk.Tk()
btn0 = tk.Button(root, text=msg_boxes[0], width=20, command=demo0)
btn0.pack()
btn1 = tk.Button(root, text=msg_boxes[1], width=20, command=demo1)
btn1.pack()
btn2 = tk.Button(root, text=msg_boxes[2], width=20, command=demo2)
btn2.pack()
btn3 = tk.Button(root, text=msg_boxes[3], width=20, command=demo3)
btn3.pack()
btn4 = tk.Button(root, text=msg_boxes[4], width=20, command=demo4)
btn4.pack()
btn5 = tk.Button(root, text=msg_boxes[5], width=20, command=demo5)
btn5.pack()
btn6 = tk.Button(root, text=msg_boxes[6], width=20, command=demo6)
btn6.pack()
btn7 = tk.Button(root, text=msg_boxes[7], width=20, command=demo7)
btn7.pack()
root.mainloop()