选择一个文件夹会更新 tkinter 中的所有条目

Choosing a folder updates all entry in tkinter

Image 1有两个按钮,一个选择文件,一个选择目录,然后更新 tkinter 中的相应条目。但如果有人被选中,它会更新其他条目。 在随附的屏幕截图中,我只是通过单击浏览按钮 select 编辑了文件,但它更新了两个条目。 下面是代码。请帮忙。 主要是尝试 select 一个文件夹和 select 一个 excel 文件并验证 sheet 是否存在。所以这部分工作正常。唯一的问题是过度更新条目。

class StartPage(tk.Frame):

    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)

        self.filedir = tk.Entry(self, text=" ")
        self.filedir.grid(row=1,column=0)
        self.load_button = tk.Button(self, text="Browse...", command=self.loadFile)
        self.load_button.grid(row=1,column=1)
        self.projectdir = tk.Entry(self, text=" ")
        self.projectdir.grid(row=3,column=0)
        self.choose_dir = tk.Button(self, text="Select Folder", command=self.chooseDir)
        self.choose_dir.grid(row=3,column=1)
        self.submit_button = tk.Button(self, text="Submit", command=self.submit)
        self.submit_button.grid(row=4,columnspan=3)

    def chooseDir(self):
        dirName = askdirectory(title='Please select a directory')
        self.projectdir.delete(0, "end")
        self.projectdir.insert(0, dirName)

    def loadFile(self):
        filename = askopenfilename(filetypes=(("info", "*.xlsx"), ("all file", "*.*")))
        extension = filename[filename.rfind('.'):]
        if extension == '.ods':
            messagebox.showerror("Error", "Error message")
        else:
            vVerify = self.verifyExcel(filename)
            if vVerify == 1:
                self.verify_button = tk.Button(self, text="Verified")
                self.verify_button.grid(row=1,column=2)
                self.filedir.delete(0, "end")
                self.filedir.insert(0, filename)
            else:
                messagebox.showerror("Error", "Error message 1")




app = SeaofBTCapp()
app.mainloop()

只需从 entry 小部件中删除 text=" " 即可避免创建通用文本变量 " "

    class StartPage(tk.Frame):

        def __init__(self, parent, controller):
            self.filedir = tk.Entry(self)
            self.projectdir = tk.Entry(self)
            ...