我创建了一个 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()