我在使用tkinters文件对话框打开和保存文件时遇到了一些问题。这是一个小的复制代码的问题,我有。在
import tkinter as tk
from tkinter import filedialog
from openpyxl import load_workbook
def open_file():
tk.filedialog.askopenfilename(initialdir='.', title='Select File', filetypes=(('Excel files', ('*.xl*', '*.xlsx', '*.xlsm', '*.xlsb', '.xlam', '*.xltx', '*.xltm', '*.xls', '*.xla', '*.xlt', '*.xlm', '*.xlw')), ('Text Files', ('*.txt', '*.csv')), ('all files', '*.*')))
def save_file():
tk.filedialog.asksaveasfilename(initialdir='.', title='Save File', filetypes=(('Excel files', ('*.xl*', '*.xlsx', '*.xlsm', '*.xlsb', '.xlam', '*.xltx', '*.xltm', '*.xls', '*.xla', '*.xlt', '*.xlm', '*.xlw')), ('Text Files', ('*.txt', '*.csv')), ('all files', '*.*')))
wb = load_workbook('test.xlsx')
wb.save('new_name' + '.xlsx')
class App(tk.Frame):
def __init__(self, master):
tk.Frame.__init__(self, master)
open_btn = tk.Button(master, text='Open', command=open_file)
save_btn = tk.Button(master, text='Save', command=save_file)
open_btn.pack()
save_btn.pack()
if __name__ == "__main__":
root = tk.Tk()
app = App(root)
app.mainloop()
这个代码可以工作,但不是我希望的那样。当我单击“打开”按钮时,会弹出文件对话框窗口,但实际上我无法打开任何文件。如果我单击一个文件,然后单击打开文件对话框窗口立即关闭。如果我双击一个文件也会发生同样的事情。但是,我可以右键单击一个文件,然后选择“打开”,这样就可以了。如何获得允许我打开文件的前两个方法?在
至于save函数,它是有效的,但也不像我希望它起作用。文件对话框打开,但用户不能自己命名文件。他们可以输入一些内容,然后单击“保存”,但它不会真正用这个名称命名文件。相反,它将新文件命名为“new_name”,因为我的函数就是这样。我的印象是在filedialog窗口中默认为“new_name”,然后允许用户根据自己的意愿编辑名称。有没有办法实现我想要的?在
目前没有回答
相关问题 更多 >
编程相关推荐