13、标准对话框

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

messagebox(消息对话框)

from logging import root
import tkinter as tk
from tkinter import messagebox

root = tk.Tk()

label = tk.Label(root)
label.pack()

def open_message():
    label['text'] = messagebox.askokcancel("Python Demo", "发射核弹?")

tk.Button(root,text='open_message',command=open_message).pack()

root.mainloop()

image-20250415145958365

使用函数 对话框样式
askokcancel(title, message, options) img
askquestion(title, message, options) img
askretrycancel(title, message, options) img
askyesno(title, message, options) img
showerror(title, message, options) img
showinfo(title, message, options) img
showwarning(title, message, options) img

参数

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

选项 含义
default 1. 设置默认的按钮(也就是按下回车响应的那个按钮) 2. 默认是第一个按钮(像“确定”,“是”或“重试”) 3. 可以设置的值根据对话框函数的不同可以选择:CANCEL,IGNORE,OK,NO,RETRY 或 YES
icon 1. 指定对话框显示的图标 2. 可以指定的值有:ERROR,INFO,QUESTION 或 WARNING 3. 注意:不能指定自己的图标
parent 1. 如果不指定该选项,那么对话框默认显示在根窗口上 2. 如果想要将对话框显示在子窗口 w 上,那么可以设置 parent=w

返回值

filedialog(文件对话框)

from logging import root
import tkinter as tk
from tkinter import filedialog

root = tk.Tk()

label = tk.Label(root)
label.pack()

def open_file():
    label['text'] = filedialog.askopenfilename()

tk.Button(root,text='open_file',command=open_file).pack()

root.mainloop()

askopenfilename(**option) asksaveasfilename(**option),分别用于打开文件和保存文件。

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

选项 含义
defaultextension 1. 指定文件的后缀 ;2. 例如:defaultextension=".jpg",那么当用户输入一个文件名 "logo" 的时候,文件名会自动添加后缀为 "logo.jpg" ;3. 注意:如果用户输入文件名包含后缀,那么该选项不生效
filetypes 1. 指定筛选文件类型的下拉菜单选项 ;2. 该选项的值是由 2 元祖构成的列表 ;3. 每个 2 元祖由(类型名,后缀)构成,例如:filetypes=[("PNG", ".png"), ("JPG", ".jpg"), ("GIF", ".gif")]
initialdir 1. 指定打开/保存文件的默认路径 ;2. 默认路径是当前文件夹
parent 1. 如果不指定该选项,那么对话框默认显示在根窗口上 ;2. 如果想要将对话框显示在子窗口 w 上,那么可以设置 parent=w
title 指定文件对话框的标题栏文本

colorchooser(颜色选择对话框)

import tkinter as tk
 
root = tk.Tk()
 
def callback():
    fileName = tk.colorchooser.askcolor()
    print(fileName)
 
tk.Button(root, text="选择颜色", command=callback).pack()
 
root.mainloop()

image-20250415150958183

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

option 参数可以指定的选项及含义如下:

选项 含义
title 指定颜色对话框的标题栏文本
parent 1. 如果不指定该选项,那么对话框默认显示在根窗口上 2. 如果想要将对话框显示在子窗口 w 上,那么可以设置 parent=w