Python 从tkinter列表框中跳出

Python 从tkinter列表框中跳出,python,tkinter,escaping,break,Python,Tkinter,Escaping,Break,我试图将escape绑定到tkinter列表框,当我点击escape时,它仍然希望运行apply函数 def body(self, master): self.e1 = tk.Listbox(master, selectmode=tk.SINGLE, height = 10, exportselection=0) for name in self.names: self.e1.insert(tk.END, str(name))

我试图将escape绑定到tkinter列表框,当我点击escape时,它仍然希望运行apply函数

def body(self, master):
        self.e1 = tk.Listbox(master, selectmode=tk.SINGLE, height = 10, exportselection=0)

        for name in self.names:
            self.e1.insert(tk.END, str(name))


        self.selection = 0
        self.e1.select_set(self.selection)

        self.e1.bind("<Down>", self.OnEntryDown)
        self.e1.bind("<Up>", self.OnEntryUp)
        self.e1.bind("<Escape>", self.test)


        self.e1.pack()

        return self.e1

    def test(self, event):
        self.destroy()

    def OnEntryDown(self, event):
        #self.e1.yview_scroll(1,"units")
        if self.selection < self.e1.size()-1:
            self.e1.select_clear(self.selection)
            self.selection += 1
            self.e1.select_set(self.selection)

    def OnEntryUp(self, event): 
        if self.selection > 0:
            self.e1.select_clear(self.selection)
            self.selection -= 1
            self.e1.select_set(self.selection)

    def apply(self):
        self.file.returnSelection(self.e1.get(self.e1.curselection()))
我能了解一下我做错了什么吗?我没有得到一个错误,但它并没有破例,而是调用apply方法


谢谢

找到了答案。我在我试图操作的函数中放了一个if语句,如果操作的变量不是none,那么继续。否则,它不会执行代码,也不会向我抛出任何错误

您是否尝试过self.e1.destroy或self.e1.forget,如果您想稍后重新打包它?@TigerhawkT3,我尝试过,但它仍然尝试去应用