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

问题描述 投票:0回答:1

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

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()
python-3.x tkinter tkinter-entry
1个回答
1
投票

只需从text=" "小部件中删除entry,以避免创建常见的textvariable " "

    class StartPage(tk.Frame):

        def __init__(self, parent, controller):
            self.filedir = tk.Entry(self)
            self.projectdir = tk.Entry(self)
            ...
© www.soinside.com 2019 - 2024. All rights reserved.