Tkinter GUI 使用自己的按钮和条目创建另一个框架,如何保存此产品以便随时加载?

Tkinter GUI creates another frame with its own buttons and entries, how can I save this product to be loaded at anytime?

我创建了一个 tkinter GUI,它根据输入的数据创建了另一个具有自己的按钮、条目和功能的框架。

现在,我希望用户能够将该产品另存为文件,并能够在需要时打开它,它具有与创建的相同的按钮和条目。

我已经试过了filedialog.asksaveasfilename(defaultextension=... ),但还是不行。我一直在寻找 tkinter 文件的文件类型。但也许,因为我是 python 的新手,所以我没有看到找到答案的正确途径。如果有人能帮助我,我将不胜感激。

试试看下面的内容。它可以满足我认为您需要的功能:

from tkinter import *
import json

class App:
    def __init__(self, root):
        self.root = root
        self.keys = ["0", "1", "2"]
        self.widget = [(Label(self.root), Entry(self.root)), (Label(self.root), Entry(self.root)), (Label(self.root), Entry(self.root))]
        self.button = Button(self.root, text="Save", command=self.save)
        for i in self.widget:
            [1].pack()
        for i in self.widget:
            i[0].pack()
       self.button.pack()
        try:
            with open("data.json", "r") as f:
                self.data = json.load(f)
                f.close()
                for i in self.keys:
                    self.widget[int(i)][0].configure(text=self.data[i])
            print(self.data)
        except FileNotFoundError:
            print("File not found")
        except KeyError:
            print("Keys do not match")
    def save(self):
        for (i, c) in self.widget:
            i.configure(text=c.get())
        with open("data.json", "w") as f:
            json.dump({self.keys[0]: self.widget[0][1].get(), self.keys[1]: self.widget[1][1].get(), self.keys[2]: self.widget[2][1].get()}, f)
            f.close()

root = Tk()
App(root)
root.mainloop()