我不明白的方式破壞作品...破壞不破壞
我有一個類子窗口是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'相比發生不同的事情。 –