我不明白的方式破坏作品...破坏不破坏
我有一个类子窗口是Tk.Toplevel 的子类,如果这个子窗口中有一个内部的部件
自我.label = Tk.Label(主=自,文本= '这是子窗口: %S !!!!' %自我)
当我破坏子窗口,它不DIE,它窗台活(我知道这看着子窗口的数组)
销毁子窗口的唯一方法是调用
在销毁方法德尔self.label
。
import Tkinter as Tk
import weakref
root = Tk.Tk()
subwindows = []
def subwindow():
subwindows.append(weakref.ref(SubWindow(root)))
def list_subwindows():
print 'Subwindows: ',
for subwindow in subwindows:
sw = subwindow()
if sw:
print sw,
print ''
class SubWindow(Tk.Toplevel):
def __init__(self, window):
Tk.Toplevel.__init__(self, master = window)
self.label = Tk.Label(master=self, text='This is Sub Window: %s!!!!'%self)
self.label.pack()
# self.bind('<Destroy>', self._destroy)
def _destroy(self, event):
try:
del self.label
except:
pass
bStartWindow = Tk.Button(master=root, text='Start Sub Window',
command=subwindow)
bStartWindow.pack()
bListSubwindows = Tk.Button(master=root, text='List Active subwindows',
command = list_subwindows)
bListSubwindows.pack()
root.mainloop()
为什么子窗口没有被销毁?
你是如何摧毁这个小工具? –
由你的问题,我想我做错了,但我只是关闭窗口右上角的X按钮。我认为没有必要直接调用destroy() – fariza
不要从我的问题推断任何东西。我问,只是因为你没有说你是如何摧毁它的。你摧毁的方式决定了发生的事情。点击窗口装饰会导致与直接调用'destroy'方法或在窗口小部件上调用'del'相比发生不同的事情。 –