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

时间:2018-09-15 21:28:27

标签: python tkinter

使用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()

此代码有效,但不是我想要的方式。当我单击“打开”按钮时,将弹出“文件对话框”窗口,但实际上无法打开任何文件。如果单击文件,然后单击打开,则文件对话框窗口立即关闭。如果我只是双击一个文件,也会发生同样的事情。但是,我可以右键单击一个文件,然后选择“打开”即可。如何获得允许我打开文件的前两种方法?

至于保存功能,它可以工作,但也不像我希望的那样。将打开文件对话框,但用户无法自己命名文件。他们可以输入一些内容,然后单击“保存”,但是实际上并不会使用该名称来命名文件。相反,它将新文件命名为“ new_name”,因为这就是我的功能。我的印象是,它将在文件对话框窗口中默认为“ new_name”,然后允许用户根据需要编辑名称。有什么方法可以实现我想要的?

0 个答案:

没有答案