天天看点

关于tkinter-filedialog-asksaveasfilename参数defaultextension无法设置默认文件名的处理办法。

问题:需要在选择存储路径时,让其默认有一个文件名。

起初的尝试:

import tkinter
import tkinter.filedialog as filedialog
root = tkinter.Tk()
root.title("界面")
root.geometry("360x290")

def fun1():
    path_save = tkinter.filedialog.asksaveasfilename(defaultextension='这里是默认文件名',filetypes=[("word文件", ".docx")])
    print(path_save)
    path_save = path_save.replace("/", "\\\\")
    print(path_save)

root.resizable(False, False)  # 不能变化窗口大小
tkinter.Button(root, text='保存路径',command=fun1).pack()
root.mainloop()
           

运行图:

关于tkinter-filedialog-asksaveasfilename参数defaultextension无法设置默认文件名的处理办法。

点击“保存路径”按钮:(并没有在文件名处出现我们设置的默认文件名)

关于tkinter-filedialog-asksaveasfilename参数defaultextension无法设置默认文件名的处理办法。

出现这个问题原因我也不清楚,按理来说设置了defaultextension属性应该会有啊!

解决办法:

写的时候发现是自己搞错了,应该用initialfile属性,就怪我看完这个链接之后,可能对defaultextension: added to filename if not explicitly given,这局英文理解的不太好,有道翻译的意思是:默认扩展:添加到文件名,如果没有明确给出。这不是默认文件名的意思嘛。再看看initialfile: initial file (ignored by the open dialog).   preserved by dialog instance. 的翻译:初始文件(被打开的对话框忽略)。由对话框实例保存。

所以一开始我以为用defaultextension应该就可以,谁知道认真看了一下是initialfile,把defaultextension替换为initialfile,结果成功:

关于tkinter-filedialog-asksaveasfilename参数defaultextension无法设置默认文件名的处理办法。

哎,白忙活了一下,哈哈哈哈