<p>下面是一个简单程序的示例,它将接收3个字段并将它们保存到主目录中名为<code>test_text</code>的文件中。在</p>
<p>当按下加载按钮时,通过使用一些if语句,可以使用同一个文件加载到每个字段。在</p>
<p>这应该是一个很好的例子来帮助你解决你的问题。在</p>
<pre><code>import tkinter as tk
class App(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
self.master = parent
self.save_btn = tk.Button(self.master, text = "Save fields", command= self.ldsave)
self.save_btn.grid(row=0, column=0)
load_btn = tk.Button(self.master, text = "Load fields", command= self.ldload)
load_btn.grid(row=0, column=1)
label1 = tk.Label(self.master, text = "First Name: ")
label1.grid(row=1, column=0)
self.entry1 = tk.Entry(self.master)
self.entry1.grid(row=1, column=1)
label2 = tk.Label(self.master, text = "Last Name: ")
label2.grid(row=2, column=0)
self.entry2 = tk.Entry(self.master)
self.entry2.grid(row=2, column=1)
label3 = tk.Label(self.master, text = "Age: ")
label3.grid(row=3, column=0)
self.entry3 = tk.Entry(self.master)
self.entry3.grid(row=3, column=1)
def ldsave(self):
list_of_entries = [self.entry1.get(), self.entry2.get(), self.entry3.get()]
with open("./test_text", 'w') as f:
for item in list_of_entries:
f.write("{}\n".format(item))
def ldload(self):
try:
with open("./test_text", 'r') as f:
content = f.readlines()
content = [x.strip() for x in content]
for i in range(3):
if i == 0:
self.entry1.delete(0,tk.END)
self.entry1.insert(0,content[i])
if i == 1:
self.entry2.delete(0,tk.END)
self.entry2.insert(0,content[i])
if i == 2:
self.entry3.delete(0,tk.END)
self.entry3.insert(0,content[i])
except:
print("File test_text does not exist")
if __name__ == "__main__":
root = tk.Tk()
my_app = App(root)
tk.mainloop()
</code></pre>