一、介紹
Tkinter 為了提供了三種標(biāo)準(zhǔn)對(duì)話框模塊,它們分別是:
messagebox
filedialog
colorchooser
二、使用
1、messagebox(消息對(duì)話框)
首先要from tkinter import messagebox
from tkinter import *
from tkinter import messagebox
messagebox.askokcancel('fishc demo','發(fā)射核彈?') #第一個(gè)是title,第二個(gè)是顯示的內(nèi)容
mainloop()

from tkinter import *
from tkinter import messagebox
result = messagebox.askokcancel('fishc demo','發(fā)射核彈?')
print(result)
mainloop()

有返回值,按下確定,返回True,按下取消,返回False
下表為你列出了使用 messagebox可以創(chuàng)建的所有標(biāo)準(zhǔn)對(duì)話框樣式:
| 使用函數(shù) | 對(duì)話框樣式 |
|---|---|
| askokcancel(title, message, options) | ![]() |
| askquestion(title, message, options) | ![]() |
| askretrycancel(title, message, options) | ![]() |
| askyesno(title, message, options) | ![]() |
| showerror(title, message, options) | ![]() |
| showinfo(title, message, options) | ![]() |
| showwarning(title, message, options) | ![]() |
參數(shù)
所有的這些函數(shù)都有相同的參數(shù):
title參數(shù)毋庸置疑是設(shè)置標(biāo)題欄的文本
message 參數(shù)是設(shè)置對(duì)話框的主要文本內(nèi)容,你可以用 '\n' 來(lái)實(shí)現(xiàn)換行
options 參數(shù)可以設(shè)置的選項(xiàng)和含義如下表所示:
| 選項(xiàng) | 含義 |
|---|---|
| default | 1. 設(shè)置默認(rèn)的按鈕(也就是按下回車響應(yīng)的那個(gè)按鈕) 2. 默認(rèn)是第一個(gè)按鈕(像“確定”,“是”或“重試”) 3. 可以設(shè)置的值根據(jù)對(duì)話框函數(shù)的不同可以選擇:CANCEL,IGNORE,OK,NO,RETRY 或 YES |
| icon | 1. 指定對(duì)話框顯示的圖標(biāo) 2. 可以指定的值有:ERROR,INFO,QUESTION 或 WARNING 3. 注意:不能指定自己的圖標(biāo) |
| parent | 1. 如果不指定該選項(xiàng),那么對(duì)話框默認(rèn)顯示在根窗口上 2. 如果想要將對(duì)話框顯示在子窗口 w 上,那么可以設(shè)置 parent=w |
返回值
askokcancel(),askretrycancel() 和 askyesno()返回布爾類型的值:
返回 True 表示用戶點(diǎn)擊了“確定”或“是”按鈕
返回False表示用戶點(diǎn)擊了“取消”或“否”按鈕
askquestion() 返回“yes”或“no”字符串表示用戶點(diǎn)擊了“是”或“否”按鈕
showerror(),showinfo() 和 showwarning() 返回“ok”表示用戶按下了“是”按鈕
2、filedialog(文件對(duì)話框)
當(dāng)你的應(yīng)用程序需要使用打開文件或保存文件的功能時(shí),文件對(duì)話框顯得尤為重要。
實(shí)現(xiàn)起來(lái)就是這樣:
from tkinter import *
from tkinter import filedialog
root = Tk()
def callback():
fileName = filedialog.askopenfilename()
print(fileName)
Button(root, text="打開文件", command=callback).pack()
mainloop()

filedialog 模塊提供了兩個(gè)函數(shù):askopenfilename(**option) 和 asksaveasfilename(**option),分別用于打開文件和保存文件。
參數(shù)
兩個(gè)函數(shù)可供設(shè)置的選項(xiàng)是一樣的,下邊列舉了可用的選項(xiàng)及含義:
| 選項(xiàng) | 含義 |
|---|---|
| defaultextension | 1. 指定文件的后綴 2. 例如:defaultextension=".jpg",那么當(dāng)用戶輸入一個(gè)文件名 "FishC" 的時(shí)候,文件名會(huì)自動(dòng)添加后綴為 "FishC.jpg" 3. 注意:如果用戶輸入文件名包含后綴,那么該選項(xiàng)不生效 |
| filetypes | 1. 指定篩選文件類型的下拉菜單選項(xiàng) 2. 該選項(xiàng)的值是由 2 元祖構(gòu)成的列表 3. 每個(gè) 2 元祖由(類型名,后綴)構(gòu)成,例如:filetypes=[("PNG", ".png"), ("JPG", ".jpg"), ("GIF", ".gif")] |
| initialdir | 1. 指定打開/保存文件的默認(rèn)路徑 2. 默認(rèn)路徑是當(dāng)前文件夾 |
| parent | 1. 如果不指定該選項(xiàng),那么對(duì)話框默認(rèn)顯示在根窗口上 2. 如果想要將對(duì)話框顯示在子窗口 w 上,那么可以設(shè)置 parent=w |
| title | 指定文件對(duì)話框的標(biāo)題欄文本 |
返回值
- 如果用戶選擇了一個(gè)文件,那么返回值是該文件的完整路徑
- 如果用戶點(diǎn)擊了取消按鈕,那么返回值是空字符串
3、colorchooser(顏色選擇對(duì)話框)
顏色選擇對(duì)話框提供一個(gè)友善的界面讓用戶選擇需要的顏色,大家看下例子:
from tkinter import *
from tkinter import colorchooser
root = Tk()
def callback():
fileName = colorchooser.askcolor()
print(fileName)
Button(root, text="選擇顏色", command=callback).pack()
mainloop()

參數(shù)
askcolor(color, **option) 函數(shù)的 color 參數(shù)用于指定初始化的顏色,默認(rèn)是淺灰色;
option參數(shù)可以指定的選項(xiàng)及含義如下:
| 選項(xiàng) | 含義 |
|---|---|
| title | 指定顏色對(duì)話框的標(biāo)題欄文本 |
| parent | 1. 如果不指定該選項(xiàng),那么對(duì)話框默認(rèn)顯示在根窗口上 2. 如果想要將對(duì)話框顯示在子窗口 w 上,那么可以設(shè)置 parent=w |
返回值
- 如果用戶選擇一個(gè)顏色并按下“確定”按鈕后,返回值是一個(gè) 2 元祖,第 1 個(gè)元素是選擇的 RGB 顏色值,第 2 個(gè)元素是對(duì)應(yīng)的 16 進(jìn)制顏色值
- 如果用戶按下“取消”按鈕,那么返回值是
(None, None)






