私はTkinterで小さなアプリケーションを作っています。私はウィンドウが閉じられたときに呼び出される関数でいくつかのものをきれいにしたいと思います。私はクローズイベントをその機能でバインドしようとしています。それが可能なのかどうか、対応するシーケンスは何か分かりません。Tkinterフレームにどのイベントをバインドできますか?
Pythonのドキュメントには、See the bind man page and page 201 of John Ousterhout’s book for details
と記載されています。
残念ながら、私はこれらのリソースを私の手には持っていません。誰かがバインドできるイベントのリストを知っていますか?
代替方法として、Frameクラスの__del__
のすべてをクリーニングする方法があります。知られていない理由のために、決して呼び出されないようです。何が原因なのか誰も知っていますか?いくつかの循環依存関係?
すぐに、コントロール(以下のコードでコメントを外します)を追加すると、__del__
はもう呼び出されません。その問題の解決策はありますか?私は信じていthis
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()
これは完全に機能します。どうもありがとうございました。私は、循環参考文献がニグメアであることに同意する。 – luc
manページへのリンクがprincetonの個人アカウントではない場合、これがより良い答えになると思います。 tcl.tk/manには公式のマニュアルページがあります。 –
@ブライアン良い点、それに応じてURLを変更しました。 –