对象树和对象所有权

Qt 3.0.5

主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数

对象树和对象所有权

QObject在对象树中组织它们自己。当你以另外一个对象作为 父对象来创建一个QObject时,它就被添加到父对象的children() 列表中,并且当父对象被删除的时候,它也会被删除。这种机制很好的适合了图形用户 界面应用对象的需要。例如,一个QAccel(键盘快捷键)是相关窗口的子对象,当用户 关闭该窗口的时候,这个快捷键也被删除了。

静态函数QObject::objectTrees()提供了访问当前存在的所有跟对象的方法。

QWidget,在屏幕上显示的任何东西的基类,扩展着父-子对象关系。一个子 对象通常就是一个子窗口部件,也就是说,它被显示在父对象的坐标系统中并且 在图象上由父对象的边界夹住。例如,当一个应用程序在一个消息框被关闭之后 删除这个消息框时,消息框的按钮和标签正如我们所想要的也被删除了,因为这些 按钮和标签都是消息框的子对象。

你也可以自己删除子对象,这样它们就会把它们自己从它们的父对象中移除。例如, 当用户移除工具条可以导致应用程序删除它的一个QToolBar对象,在这种情况 工具条的QMainWindow父对象会检测到这种变化并因此而重新构成屏幕空间。

当一个应用程序的看起来或者运行起来有些奇怪的时候,调试函数QObject::dumpObjectTree()QObject::dumpObjectInfo()是经常有用的。


Copyright © 2002 Trolltech Trademarks 译者:Cavendish
Qt 3.0.5版