我试图归档一个可关闭的Composite自定义小部件。我正在研究Window,Page和TabView类。
来自Window的close()
方法基本上只是隐藏小部件,TabView会监听close
页面事件,然后调用remove(page)
方法,这会从page
移除pane
内部page.close()
,但我没有找到close()
。那么,关闭的寡妇和Pages会发生什么?还存在吗?
我自己的hide()
方法必须只调用close
方法并像Window一样触发class Program(models.Model):
program_name = models.CharField(...)
program_version = models.CharField(...)
program_installer = models.FileField(...)
事件?这不会带来一些内存泄漏吗?
答案 0 :(得分:1)
在您致电widget.destroy()
之前,小部件仍然可用,但在此之前,您可以自由隐藏它们或将其从父容器中删除。一旦从一个容器中删除它们,您就可以重复使用它们并将它们完全添加到另一个容器中 - 在IE6时代,这是一个常见的要求,因为将未使用的小部件移动到池中并重用它们比创建新的更快从头开始(小部件将保留它的DOM元素,直到它被销毁)。
close()
中的Window
方法实际上只是使用Window语义的一部分 - 它真正做的就是删除或隐藏Window小部件并触发事件,因此close()
和open()
(几乎)只不过是很好的API糖,让用户的生活变得轻松。
OTOH Page
不需要close()
方法,因为从TabView
添加和删除页面就是整个概念。