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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM