How to insert value into tkinter entry without curly brackets or additional symbols?

前端 未结 2 1268
北海茫月
北海茫月 2021-01-23 20:53

So my issue is I\'m creating a form and currently I need entries into the tk.Entry to be able to be saved and loaded. I have it to the point where it works, however any entries

2条回答
  •  旧时难觅i
    2021-01-23 21:46

    Here is an example of a simple program that will take in 3 fields and save them to a file called test_text in your main directory.

    That same file can be used to load to each field through the use of some if statements when the load button is pressed.

    This should be a good example to assist you with your problem.

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

提交回复
热议问题