<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- /home/espenr/tmp/qt - 3.3.8 - espenr - 2499/qt - x11 - free - 3.3.8/doc/object.doc:572 -->
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=ISO-8859-1" >
< title > Object Trees and Object Ownership< / title >
< style type = "text/css" > < ! - -
fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
body { background: #ffffff; color: black; }
-->< / style >
< / head >
< body >
< table border = "0" cellpadding = "0" cellspacing = "0" width = "100%" >
< tr bgcolor = "#E5E5E5" >
< td valign = center >
< a href = "index.html" >
< font color = "#004faf" > Home< / font > < / a >
| < a href = "classes.html" >
< font color = "#004faf" > All Classes< / font > < / a >
| < a href = "mainclasses.html" >
< font color = "#004faf" > Main Classes< / font > < / a >
| < a href = "annotated.html" >
< font color = "#004faf" > Annotated< / font > < / a >
| < a href = "groups.html" >
< font color = "#004faf" > Grouped Classes< / font > < / a >
| < a href = "functions.html" >
< font color = "#004faf" > Functions< / font > < / a >
< / td >
< td align = "right" valign = "center" > < img src = "logo32.png" align = "right" width = "64" height = "32" border = "0" > < / td > < / tr > < / table > < h1 align = center > Object Trees and Object Ownership< / h1 >
< p > < a href = "ntqobject.html" > TQObjects< / a > organize themselves in object trees.
When you create a < a href = "ntqobject.html" > TQObject< / a > with another object as parent, it's added to
the parent's < a href = "ntqobject.html#children" > children()< / a > list, and
is deleted when the parent is. It turns out that this approach fits
the needs of GUI objects very well. For example, a < a href = "ntqaccel.html" > TQAccel< / a > (keyboard
accelerator) is a child of the relevant window, so when the user closes
that window, the accelerator is deleted too.
< p > The static function < a href = "ntqobject.html#objectTrees" > TQObject::objectTrees< / a > () provides access to all
the root objects that currently exist.
< p > < a href = "ntqwidget.html" > TQWidget< / a > , the base class of everything that appears on the screen,
extends the parent-child relationship. A child normally also becomes a
child widget, i.e. it is displayed in its parent's coordinate system
and is graphically clipped by its parent's boundaries. For example,
when the an application deletes a message box after it has been
closed, the message box's buttons and label are also deleted, just as
we'd want, because the buttons and label are children of the message
box.
< p > You can also delete child objects yourself, and they will remove
themselves from their parents. For example, when the user removes a
toolbar it may lead to the application deleting one of its < a href = "ntqtoolbar.html" > TQToolBar< / a >
objects, in which case the tool bar's < a href = "ntqmainwindow.html" > TQMainWindow< / a > parent would
detect the change and reconfigure its screen space accordingly.
< p > The debugging functions < a href = "ntqobject.html#dumpObjectTree" > TQObject::dumpObjectTree< / a > () and < a href = "ntqobject.html#dumpObjectInfo" > TQObject::dumpObjectInfo< / a > () are often useful when an application looks or
acts strangely.
< p >
<!-- eof -->
< p > < address > < hr > < div align = center >
< table width = 100% cellspacing = 0 border = 0 > < tr >
< td > Copyright © 2007
< a href = "troll.html" > Trolltech< / a > < td align = center > < a href = "trademarks.html" > Trademarks< / a >
< td align = right > < div align = right > TQt 3.3.8< / div >
< / table > < / div > < / address > < / body >
< / html >