python - 哪些事件可以绑定(bind)到 Tkinter Frame?

标签 python python-3.x tkinter

我正在用 Tkinter 制作一个小应用程序。我想在关闭窗口时调用的函数中清理一些东西。我正在尝试将我的窗口的关闭事件 与该函数绑定(bind)。不知道可不可以,对应的顺序是什么。

Python 文档说:有关详细信息,请参阅 bind 手册页和 John Ousterhout 的书的第 201 页

很遗憾,我手头没有这些资源。有人知道可以绑定(bind)的事件列表吗?

另一种解决方案是清除我的 Frame 类的 __del__ 中的所有内容。由于未知原因,它似乎从未被调用过。有谁知道可能是什么原因?一些循环依赖?

只要我添加一个控件(在下面的代码中取消注释),就不会再调用 __del__。这个问题有什么解决方案吗?

from tkinter import *

class MyDialog(Frame):
    def __init__(self):
        print("hello")
        self.root = Tk()
        self.root.title("Test")

        Frame.__init__(self, self.root)
        self.list = Listbox(self, selectmode=BROWSE)
        self.list.pack(fill=BOTH, expand=1)
        self.pack(fill=BOTH, expand=1)


    def __del__(self):
        print("bye-bye")

dialog = MyDialog()
dialog.root.mainloop()

最佳答案

我相信this是您可能一直在寻找的绑定(bind)手册页;我相信您尝试绑定(bind)的事件是 Destroy__del__ 不可靠(很难知道循环引用循环何时停止触发,例如父到子小部件并返回!),使用事件绑定(bind)绝对更可取。

关于python - 哪些事件可以绑定(bind)到 Tkinter Frame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1200592/

相关文章:

python - 使用 Python 中已安装的 libsqlite3 版本

python - 无法使用 tkinter 调整图像大小

python - 在 Tkinter 应用程序关闭时执行任务

Python 字典对象 : SyntaxError: expression cannot contain assignment, 也许你的意思是 "=="?

python - 无法在 Python 中使用 Selenium webdriver 登录 Quora

python - 加速数据导入功能(Pandas 和 append 到 DataFrame)

string - BeautifulSoup Div 类返回空

python - Pandas Groupby 对部分字符串进行计数

python - 如何为 Altair 生成的图表添加副标题

python - 火车出发板代码 Tkinter