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

  • 相关阅读:
    【IT笔试面试题整理】把n个骰子扔在地上,所有骰子朝上一面的点数之和为S概率转
    面试题位操作
    微软面试题 寻找数组中出现的唯一重复的一个数
    【IT笔试面试题整理】给定二叉树先序中序,建立二叉树的递归算法
    【IT笔试面试题整理】 二叉树任意两个节点间最大距离
    面试题堆栈和队列
    LRU cache实现 Java 转
    【IT笔试面试题整理】有序数组生成最小高度二叉树
    Unity3d Asset Store下载的资源在哪?
    Xcode 6 如何将 模拟器(simulator) for iphone/ipad 转变成 simulator for iphone
  • 原文地址:https://www.cnblogs.com/yunlong-study/p/14473989.html
Copyright © 2011-2022 走看看