Python Tkinter文件对话框保存和打开问题(不打开,不让选择名称保存)

2024-04-25 10:14:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用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”,然后允许用户根据自己的意愿编辑名称。有没有办法实现我想要的?在


Tags: 文件nameimportmasternewsavedeffiles

热门问题