Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 哪些事件可以绑定到Tkinter帧?_Python_Python 3.x_Tkinter - Fatal编程技术网

Python 哪些事件可以绑定到Tkinter帧?

Python 哪些事件可以绑定到Tkinter帧?,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我正在用Tkinter做一个小申请。当我的窗口关闭时,我想在调用的函数中清理一些东西。我正在尝试用该函数绑定窗口的关闭事件。我不知道这是否可能,以及相应的顺序是什么 Python文档中说:有关详细信息,请参见绑定手册页和John Ousterhout的书的201页 不幸的是,我手中没有这些资源。有人知道可以绑定的事件列表吗 另一种解决方案是清理我的Frame类的\uu del\uu中的所有内容。不知什么原因,它似乎从未被调用过。有人知道原因是什么吗?一些循环依赖 一旦我添加了一个控件(在下面的代

我正在用Tkinter做一个小申请。当我的窗口关闭时,我想在调用的函数中清理一些东西。我正在尝试用该函数绑定窗口的关闭事件。我不知道这是否可能,以及相应的顺序是什么

Python文档中说:
有关详细信息,请参见绑定手册页和John Ousterhout的书的201页

不幸的是,我手中没有这些资源。有人知道可以绑定的事件列表吗

另一种解决方案是清理我的Frame类的
\uu del\uu
中的所有内容。不知什么原因,它似乎从未被调用过。有人知道原因是什么吗?一些循环依赖

一旦我添加了一个控件(在下面的代码中取消注释),就不再调用
\uu del\uu
。那个问题有什么解决办法吗

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()

我相信这就是你可能一直在寻找的装订手册页;我相信您试图绑定的事件是
销毁
<代码>\uuuu del\uuuuu
是不可依赖的(很难知道循环引用循环(例如,父到子小部件和返回)何时会阻止它触发!),使用事件绑定绝对是可取的。

我相信这是您可能一直在寻找的绑定手册页;我相信您试图绑定的事件是
销毁
<代码>\uuuu del\uuuuu
是不可依赖的(很难知道循环引用循环,例如父到子小部件和返回,何时会阻止它触发!),使用事件绑定是绝对可取的。

事件的大致确定资源是。我不太清楚您想要做什么,但是绑定到
可能是您想要的事件。我不知道它是否能满足你的需要

 ...
 self.bind("<Destroy>", self.callback)
 ...
 def callback(self, event):
     print("callback called")
。。。
self.bind(“,self.callback)
...
def回调(自身、事件):
打印(“调用回调”)

事件的基本资源是。我不太清楚您想要做什么,但是绑定到
可能是您想要的事件。我不知道它是否能满足你的需要

 ...
 self.bind("<Destroy>", self.callback)
 ...
 def callback(self, event):
     print("callback called")
。。。
self.bind(“,self.callback)
...
def回调(自身、事件):
打印(“调用回调”)

它工作得非常好。非常感谢你。我同意循环引用是一个秘密。我认为如果该手册页的链接不是指向普林斯顿大学的个人帐户,这将是一个更好的答案。tcl.tk/man上有一套正式的手册页,它工作得非常好。非常感谢你。我同意循环引用是一个秘密。我认为如果该手册页的链接不是指向普林斯顿大学的个人帐户,这将是一个更好的答案。在tcl.tk/man.Thnaks上有一套官方手册页,可以找到答案和链接。不幸的是,我只能选择正确的答案。但我投了赞成票:-)Thnaks赞成答案和链接。不幸的是,我只能选择正确的答案。但我投了更高的票:-)