如何从 Tkinter 根 window 解除绑定每个绑定

How can I unbind every single binding from a Tkinter root window

所以我在 Tkinter 中有一个应用程序,它在第一个屏幕上有很多按钮,当你按下一个按钮时,你会进入一个新的 "Window"(基本上销毁所有小部件并绘制需要的小部件'window')。有一个标准函数使用一些命令来销毁根上的每个 child。我想添加一些代码来取消绑定在根目录中进行的所有绑定。特定小部件上的绑定会被破坏,但绑定在根上的绑定会保留在那里并导致错误。

这是销毁小部件的代码。

@staticmethod
def clear():
    for widget in guihandle.root.winfo_children():
        widget.destroy()

@staticmethod
def set(db,table):

    guihandle.clear()
    curW = Window(db,table)
    guihandle.current_Window = curW
    curW.initialize()
    guihandle.windows.push(curW)

(是的,我从 sqlite3 数据库制作基本 GUI :P)

Tkinter 中没有任何东西可以做你想做的事。您的应用需要跟踪它要删除的绑定。

也就是说,根据您实际问题的复杂程度,可能还有其他解决方案。例如,不是绑定到根 window,而是绑定到自定义 绑定标签 (也称为绑定标签或 bindtag)。然后,您需要将该标签添加到每个小部件以启用绑定,并从任何现有小部件中删除该标签以有效地禁用绑定。