Python Tkinter 窗口的管理与设置(五):三种标准对话框模块

Python爬虫、数据分析、网站开发等案例教程视频免费在线观看

https://space.bilibili.com/523606542

Tkinter提供了三种标准对话框模块,分别是:

  • messagebox。
  • filedialog。
  • colorchooser

这三个模块原来是独立的,分别是tkMessageBox、tkFileDialog和tkColorChooser,需要导入才能使用。在Python3之后,这些模块全部被收归到tkinter模块的麾下。

messagebox(消息对话框)

import tkinter as tk 
from tkinter import messagebox 

root = tk.Tk() 

def callback(): 
  result = messagebox.askyesno(message='确认选择 ?') 
  print(result) 

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

下图列举使用messagebox可以创建的所有标准对话框样式


参数

所有的这些函数都有相同的参数:

  • title参数毋庸置疑是设置标题栏的文本。
  • message参数是设置对话框的主要文本内容,可以用'\n'来实现换行。
  • options参数可以设置的选项和含义如下表所示。


返回值

askokcancel(),askretrycancel()和askyesno()返回布尔类型的值:

  • 返回True表示用户单击了“确定”或“是”按钮。
  • 返回False表示用户单击了“取消”或“否”按钮。
  • askquestion()返回"yes"或"no"字符串表示用户单击了“是”或“否”按钮。
  • showerror(),showinfo()和showwarning()返回"ok"表示用户单击了“是”按钮。

filedialog(文件对话框)

当应用程序需要使用打开文件或保存文件的功能时,文件对话框显得尤为重要。实现起来就是这样:

# p15_62.py

from tkinter import * 
from tkinter import filedialog 

root = Tk() 

def callback(): 
  filename = filedialog.askopenfilename() 
  print(filename) 

Button(root, text="打开文件", command=callback).pack() 
mainloop()

filedialog模块提供了两个函数:askopenfilename(** option)和asksaveasfilename(**option),分别用于打开文件和保存文件。

参数

两个函数可供设置的选项是一样的,下表列举了可用的选项及含义。


返回值

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

colorchooser(颜色选择对话框)

颜色选择对话框提供一个让用户选择颜色的界面,请看下面的例子:

# p15_63.py 
from tkinter import * 
from tkinter import colorchooser 

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

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

askcolor(color, ** option)函数的color参数用于指定初始化的颜色,默认是浅灰色;option参数可以指定的选项及含义如下表所示


返回值

如果用户选择一个颜色并单击“确定”按钮后,返回值是一个二元组,第1个元素是选择的RGB颜色值,第2个元素是对应的十六进制颜色值。

如果用户单击“取消”按钮,那么返回值是(None,None)。

推荐阅读更多精彩内容