这篇博客主要是总结一下Tkinter中的对话框的使用,值得一提的是自从python3.0之后关于关于对话框的模块(messagebox、filedialog、colorchooser)都被收归到了tkinter的麾下,也就是说在import模块的时候需要注意一下。 
Tkinter提供了三种标准的对话框模块: 
1.messagebox 
2.filedialog 
3.colorchooser 
下面一次介绍这三种对话框: 
1.mesaagebox

import tkinter.messagebox
from tkinter import *
tkinter.messagebox.askokcancel("FishC Demo",'发射导弹?')
tkinter.messagebox.askquestion("FishC Demo","买个优盘?")
tkinter.messagebox.askretrycancel("FishC Demo","启动失败,重试?")
tkinter.messagebox.askyesno("FishC Demo","我帅吗?")
tkinter.messagebox.showerror("FishC Demo","出错啦!")
tkinter.messagebox.showinfo("FishC Demo","2017新年快乐")
tkinter.messagebox.showwarning("FishC Demo","你在偷懒!")
mainloop()

运行效果图: 

python 单选框 python选择对话框_保存文件

python 单选框 python选择对话框_python_02

python 单选框 python选择对话框_python_03

python 单选框 python选择对话框_颜色值_04

python 单选框 python选择对话框_python 单选框_05

python 单选框 python选择对话框_python_06

python 单选框 python选择对话框_颜色值_07

上面这段代码分别使用了messagebox中的对话框函数,下面总结一下上述函数: 
1.参数 
所有这些函数都有相同的参数: 
(1)title:设置标题栏的文本 
(2)message:设置对话框的主要文本内容,可以用’\n’来实现换行 
(3)options:可以设置选项和含义

python 单选框 python选择对话框_文件对话框_08

2.返回值 
askokcancel()、askretrycancel()、askyesno()返回布尔类型的值

2.filedialog 
文件对话框,主要用于打开或者保存文件

import tkinter.filedialog
from tkinter import *
root = Tk()

def callback():
     fileName = filedialog.askopenfilename()
     print(fileName)
Button(root,text='打开文本',command=callback).pack()
mainloop()

运行效果图:

python 单选框 python选择对话框_颜色值_09


总结一下filedialog对话框:

(1).参数 
两个函数可供设置的选项是一样的

python 单选框 python选择对话框_文件对话框_10

(2).返回值 
如果用户选择了一个文件,那么返回值是该文件的完整路径 
如果用户单机取消按钮,那么返回值是空字符串

3.colorchooser 
提供一个用户选择颜色的界面

import tkinter.colorchooser
from tkinter import *

root = Tk()

def callback():
     fileName = colorchooser.askcolor()
     print(fileName)

Button(root,text="选择颜色",command=callback).pack()
mainloop()

运行效果图:

python 单选框 python选择对话框_python 单选框_11

 

总结一下这个函数:

1.参数 
askcolor(color,**option)函数中的color参数用于指定初始化的颜色 
默认颜色为浅灰色

python 单选框 python选择对话框_保存文件_12


2.返回值 

如果用户选择一个颜色并单机确定按钮后,返回值是一个二元组,第一个元素是选择的 

RGB颜色值,第2个元素是对应的十六进制颜色值 

如果用户单击取消按钮,那么返回值为(None,None)

你看了上述代码中关于导入模块的代码可能感到奇怪,明明导入了thinter下的所有模块,为什么还要单独导入messagebox、filedialog、colorchooser模块呢?这个我也不太清楚,不过不单独导入会报错,之后如果解决了这个问题会来及时补充。