python tkinter 按钮状态,python tkinter 列表框
Tkinter提供了三种对话框控件:文件选择对话框、颜色选择对话框和消息对话框。本文将专门为您介绍这三个对话框的使用方法,有需要的可以参考。
00-1010文件选择对话框颜色选择对话框消息对话框除了基本控件,Tkinter还提供了三种对话框控件:
文件选择对话框:文件对话框
颜色选择对话框:颜色选择器
消息对话框:messagebox
这些对话框的使用可以在一定程度上增强用户的交互体验。这里对这些对话框控件进行详细介绍。
目录
GUI程序中经常使用文件对话框。比如上传一个文档,需要在本地选择一个文件,包括打开和保存文件的功能,需要一个文件对话框来实现。Tkinter提供的文件对话框封装在tkinter.filedailog模块中,该模块提供了关于文件对话框的常用功能。经常使用以下功能:
说明Open()打开某个文件SaveAs()打开保存文件的对话框askopenfilename()打开某个文件,以包文件名的路径为返回值askopenfilename()同时打开多个文件,返回多个文件名askopenfile()以元组形式打开文件。并返回文件流对象askopenfiles()打开多个文件并以列表形式返回多个文件流对象asksaveasfilename()选择用什么文件名保存文件并返回文件名asksaveasfile()选择用什么类型保存文件并返回文件流对象askdirectory选择目录并返回目录名。上述方法的常用参数值如下:
说明参数defaultextension指定了文件的扩展名,保存文件时会自动添加文件名。如果文件的扩展名是自动添加的,此选项的值将不会生效。filetypes指定用于过滤文件类型的下拉菜单选项,该选项的值是由两个祖先组成的列表,其中每个祖先由两部分组成(类型名和后缀)。例如,文件类型=[(png , *。png ),( jpg , *。jpg ),( gif , *。gif ),(文本文件, *。txt’).]initialdir指定打开/保存文件的默认路径,然后默认在根窗口显示对话框。通过设置该参数,对话框可以显示在子窗口上。请参见“标题指定文件”对话框标题下的一组特定示例应用程序:
来自tkinter import *
Import tkinter.filedialog #注意,应该导入文件对话框。
#定义一个相关函数来处理文件
def askfile():
#在本地选择一个文件并返回该文件的目录
filename=tkinter . file dialog . askopenfilename()
如果文件名!=:
lb.config(text=filename)
else:
Lb.config(text=您没有选择任何文件)
root=Tk()
root.config(bg=#87CEEB )
root . title(“C语言中文网”)
root.geometry(400x200 300 300 )
root . icon bitmap( c :/用户/管理员/桌面/中文网站logo.ico )
Btn=Button(root,text=选择文件
,relief=RAISED,command=askfile)
btn.grid(row=0,column=0)
lb = Label(root,text=,bg=#87CEEB)
lb.grid(row=0,column=1,padx=5)
# 显示窗口
root.mainloop()
程序运行结果:
图1:文件选择界面
下面再看一组保存文件的示例代码如下:
import tkinter as tkfrom tkinter import filedialog
from PIL import Image
def open_img():
try:
global img
filepath = filedialog.askopenfilename() # 打开文件,返回该文件的完整路径
filename.set(filepath)
img = Image.open(filename.get())
except Exception as e:
print("您没有选择任何文件",e)
def save_png():
try:
filetypes = [("PNG","*.png"), ("JPG", "*.jpg"), ("GIF","*.gif"),("txt files","*.txt"),(All files,*)]
# 返回一个 pathname 文件路径字符串,如果取消或者关闭则返回空字符,返回文件如何操作是后续代码的事情,
# 该函数知识返回选择文件的文件名字,不具备保存文件的能力
filenewpath= filedialog.asksaveasfilename(title=保存文件,
filetypes=filetypes,
defaultextension=.png,
initialdir=C:/Users/Administrator/Desktop )
path_var.set(filenewpath)
# 保存文件
img.save(str(path_var.get()))
except Exception as e:
print(e)
window = tk.Tk()
window.title("C语言中文网")
window.geometry(400x200+300+300)
window.iconbitmap(C:/Users/Administrator/Desktop/C语言中文网logo.ico)
filename = tk.StringVar()
path_var = tk.StringVar()
# 定义读取文件的组件
entry = tk.Entry(window, textvariable=filename)
entry.grid(row=1, column=0, padx=5, pady=5)
tk.Button(window, text=选择文件, command=open_img).grid(row=1, column=1, padx=5, pady=5)
# 定义保存文件的组件
entry1 = tk.Entry(window, textvariable=path_var)
entry1.grid(row=2, column=0, padx=5, pady=5)
tk.Button(window, text=保存文件, command=save_png).grid(row=2, column=1, padx=5, pady=5)
window.mainloop()
程序运行结果:
图2:程序运行结果
颜色选择对话框
颜色选择对话框(colorchooser),提供了一个非常友善的颜色面板,它允许用户选择自己所需要的颜色。当用户在面板上选择一个颜色并按下确定按钮后,它会返回一个二元祖,其第 1 个元素是选择的 RGB 颜色值,第 2 个元素是对应的 16 进制颜色值。
颜色选择对话款主要应用在画笔、涂鸦等功能上,通过它可以绘制出五彩缤纷的颜色,该对话框的使用非常简单,主要有以下两个常用方法:
常用的颜色对话框的参数值如下表所示:
2. 如果想要将对话框显示在子窗口上,那么可以设置parent = 子窗口对象
下面看一组简单的使用示例:
import tkinter as tkfrom tkinter import colorchooser
root = tk.Tk()
root.title("颜色选择")
root.geometry(400x200+300+300)
root.iconbitmap(C:/Users/Administrator/Desktop/C语言中文网logo.ico)
def callback():
# 打开颜色对话款
colorvalue = tk.colorchooser.askcolor()
# 在颜色面板点击确定后,会在窗口显示二元组颜色值
lb.config(text=颜色值:+ str(colorvalue))
lb=tk.Label(root,text=,font=(宋体,10))
# 将label标签放置在主窗口
lb.pack()
tk.Button(root, text="点击选择颜色", command=callback, width=10, bg=#9AC0CD).pack()
# 显示界面
root.mainloop()
颜色对话框如下所示:
图3:tkinter颜色对话框
上述程序的运行结果如下:
图4:程序运行结果
消息对话框
关于消息对话款(messagebox),在前面介绍其他控件时已经使用过,在本节仅对它做简单介绍。
消息对话框主要起到信息提示、警告、说明、询问等作用,通常配合事件函数一起使用,比如执行某个操作出现了错误,然后弹出错误消息提示框。通过使用消息对话框可以提升用户的交互体验,也使得 GUI 程序更加人性化。消息对话框主要包含了以下常用方法:
上述方法拥有相同的选项参数,如下表所示:
2. 默认是第一个按钮(像确定,是或重试)
3. 可以设置的值根据对话框函数的不同,可以选择 CANCEL,IGNORE,OK,NO,RETRY 或 YES
2. 可以指定的值有:ERROR,INFO,QUESTION 或 WARNING
3. 注意:不能指定自己的图标
2. 如果想要将对话框显示在子窗口上,那么可以设置 parent= 子窗口对象
上述方法的返回值一般会是一个布尔值,或者是YES,NO,OK等,这些方法使用较为简单,此处不进行逐一列举,看个简单的示例即可:
import tkinter.messageboxresult=tkinter.messagebox.askokcancel ("提示"," 你确定要关闭窗口吗? ")
# 返回布尔值参数
print(result)
程序运行结果:
图5:消息对话框
到此这篇关于Python Tkinter对话框控件使用详解的文章就介绍到这了,更多相关Python Tkinter对话框控件内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。