zoukankan      html  css  js  c++  java
  • tkinter标准对话框 filedialog:打开保存,文件对话框

    文章目录
    一、filedialog简介
    二、运用实例
    三、参数&返回值
    1. 参数
    2. 返回值
    一、filedialog简介
    在tkinter中有三种标准对话框:

    messagebox
    filedialog
    colorchooser
    之前我们说了 messagebox 消息对话框,再来认识认识 filedialog 对话框。

    如果你的应用程序会需要到打开文件、保存文件、选择目录等关于文件的操作,那么就必须要用到 filedialog 。

    下面是所有的 filedialog 的函数。

    函数 用法
    asksaveasfilename() 选择以什么文件名保存,返回文件名
    asksaveasfile() 选择以什么文件保存,创建文件并返回文件流对象
    askopenfilename() 选择打开什么文件,返回文件名
    askopenfile() 选择打开什么文件,返回IO流对象
    askopenfiles() 选择打开多个文件,以列表形式返回多个IO流对象
    askdirectory() 选择目录,返回目录名
    看上去 filedialog 中的函数挺多的,但是我们常用的也就不外乎 askopenfilename 打开文件、asksaveasfilename 保存文件,顶多加上个askdirectory 选择目录。

    二、运用实例

    我们通过一个实际案例,来看看我们常用的 filedialog 函数是怎么使用的。

    import tkinter as tk 
    from tkinter.filedialog import *
    from PIL import Image
      
    def selectFile():
        global img
        filepath = askopenfilename()  # 选择打开什么文件,返回文件名
        filename.set(filepath)             # 设置变量filename的值
        img = Image.open(filename.get())    # 打开图片
      img.show()
    def outputFile(): outputFilePath = askdirectory() # 选择目录,返回目录名 outputpath.set(outputFilePath) # 设置变量outputpath的值 def fileSave(): filenewpath = asksaveasfilename(defaultextension='.png') # 设置保存文件,并返回文件名,指定文件名后缀为.png filenewname.set(filenewpath) # 设置变量filenewname的值 img.save(str(filenewname.get())) # 设置保存图片 root = tk.Tk() filename = tk.StringVar() outputpath = tk.StringVar() filenewname = tk.StringVar() # 构建“选择文件”这一行的标签、输入框以及启动按钮,同时我们希望当用户选择图片之后能够显示原图的基本信息 tk.Label(root, text='选择文件').grid(row=1, column=0, padx=5, pady=5) tk.Entry(root, textvariable=filename).grid(row=1, column=1, padx=5, pady=5) tk.Button(root, text='打开文件', command=selectFile).grid(row=1, column=2, padx=5, pady=5) # 构建“选择目录”这一行的标签、输入框以及启动按钮 tk.Label(root, text='选择目录').grid(row=2, column=0, padx=5, pady=5) tk.Entry(root, textvariable=outputpath).grid(row=2, column=1, padx=5, pady=5) tk.Button(root, text='点击选择', command=outputFile).grid(row=2, column=2, padx=5, pady=5) # 构建“保存文件”这一行的标签、输入框以及启动按钮 tk.Label(root, text='保存文件').grid(row=3, column=0, padx=5, pady=5) tk.Entry(root, textvariable=filenewname).grid(row=3, column=1, padx=5, pady=5) tk.Button(root, text='点击保存', command=fileSave).grid(row=3, column=2, padx=5, pady=5) root.mainloop()

    运行程序来看一下。

    • 第一个按钮是选择文件,我们选择了一张图片,Entry 组件中值为返回的完整文件名
    • 第二个按钮是选择目录,Entry 组件中值为返回的目录
    • 第三个按钮是保存文件,我们点开自定义输入"111",然后我们返回到文件夹就看到我们的原图就另存为了一张名为"111.png"的图片

    三、参数&返回值
    ——

    1. 参数
    下面列出 filedialog 的各个函数可设置的参数以及用法。

    参数 用法
    defaultextension 1. 指定文件的后缀;2. 例如:defaultextension=".jpg",那么当用户输入一个文件名 “逆旅鸭” 的时候,文件名会自动添加后缀为 “逆旅鸭.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 指定文件对话框的标题栏文本
    ——

    2. 返回值
    asksaveasfilename() 选择以什么文件名保存,返回文件名

    asksaveasfile() 选择以什么文件保存,创建文件并返回文件流对象

    askopenfilename() 选择打开什么文件,返回文件名

    askopenfilenames() 选择打开多个文件,以元组形式返回多个文件名

    askopenfile() 选择打开什么文件,返回IO流对象

    askopenfiles() 选择打开多个文件,以列表形式返回多个IO流对象

    askdirectory() 选择目录,返回目录名

    如果用户点击了取消按钮,那么返回值是空字符串


    ————————————————
    版权声明:本文为CSDN博主「逆旅鸭」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/nilvya/article/details/106221666

  • 相关阅读:
    Android中内容观察者的使用---- ContentObserver类详解 (转)
    Android应用中使用及实现系统“分享”接口
    logcat的调试 比较有用的几个命令
    ASP.NET AJAX入门系列(10):Timer控件简单使用
    ASP.NET AJAX入门系列(9):在母版页中使用UpdatePanel
    ASP.NET AJAX入门系列(8):自定义异常处理
    ASP.NET AJAX入门系列(7):使用客户端脚本对UpdateProgress编程
    ASP.NET AJAX入门系列(6):UpdateProgress控件简单介绍
    ASP.NET AJAX入门系列(5):使用UpdatePanel控件(二) UpdatePanel
    ASP.NET AJAX入门系列(4):使用UpdatePanel控件(一)
  • 原文地址:https://www.cnblogs.com/yunlong-study/p/14473989.html
Copyright © 2011-2022 走看看