我正在尝试在tkinter中创建一个保存文件对话框。我需要保存文件名以便以后使用。但是,我不希望filedialog接受选择已存在的文件名。在
到目前为止我只有这个:from tkinter import filedialog
my_file = filedialog.asksaveasfilename(defaultextension = ".myfile",
filetypes = [("MYSUPERFILE", ".myfile"),
("All files", ".*")])
一种可能是获取文件名,检查它是否存在(使用os.path.isfile),如果已经有同名的文件,再次要求用户输入新名称。但是,tkinter文件对话框会询问用户“文件已经存在。要覆盖吗?”。因此,如果稍后我告诉用户我不接受文件名的选择,这看起来很混乱。有没有办法强制tkinter文件对话框不询问用户有关覆盖的问题?在
编辑:根据答案中的建议,我尝试创建自己的“保存文件”对话框。在
我基本上只在tkinter保存对话框中添加了一个警告:
^{pr2}$
所以,看起来很简单。然后我想:我需要创建我自己的asksaveasfilename函数。
我去查资料来源:def asksaveasfilename(**options):
"Ask for a filename to save as"
return SaveAs(**options).show()
哼。。我要看看SaveAs在做什么。在class SaveAs(_Dialog):
"Ask for a filename to save as"
command = "tk_getSaveFile"
啊。。。我迷路了。我不明白这些碎片是怎么拼在一起的SaveAs'只有命令tk_getSaveFile。这里如何使用SaveFileDialog?我怎样才能建立自己的myasksaveasfilename函数呢?在