summaryrefslogtreecommitdiffstats
path: root/doc/html/qlayoutiterator.html
blob: 18fd1acd5366578090eb1e7c141a58da527bbff5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
<!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/src/kernel/qabstractlayout.cpp:1569 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>QLayoutIterator Class</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&nbsp;Classes</font></a>
 | <a href="mainclasses.html">
<font color="#004faf">Main&nbsp;Classes</font></a>
 | <a href="annotated.html">
<font color="#004faf">Annotated</font></a>
 | <a href="groups.html">
<font color="#004faf">Grouped&nbsp;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>QLayoutIterator Class Reference</h1>

<p>The QLayoutIterator class provides iterators over QLayoutItem.
<a href="#details">More...</a>
<p><tt>#include &lt;<a href="qlayout-h.html">qlayout.h</a>&gt;</tt>
<p><a href="qlayoutiterator-members.html">List of all member functions.</a>
<h2>Public Members</h2>
<ul>
<li class=fn><a href="#QLayoutIterator"><b>QLayoutIterator</b></a> ( QGLayoutIterator&nbsp;*&nbsp;gi )</li>
<li class=fn><a href="#QLayoutIterator-2"><b>QLayoutIterator</b></a> ( const&nbsp;QLayoutIterator&nbsp;&amp;&nbsp;i )</li>
<li class=fn><a href="#~QLayoutIterator"><b>~QLayoutIterator</b></a> ()</li>
<li class=fn>QLayoutIterator &amp; <a href="#operator-eq"><b>operator=</b></a> ( const&nbsp;QLayoutIterator&nbsp;&amp;&nbsp;i )</li>
<li class=fn>QLayoutItem * <a href="#operator++"><b>operator++</b></a> ()</li>
<li class=fn>QLayoutItem * <a href="#current"><b>current</b></a> ()</li>
<li class=fn>QLayoutItem * <a href="#takeCurrent"><b>takeCurrent</b></a> ()</li>
<li class=fn>void <a href="#deleteCurrent"><b>deleteCurrent</b></a> ()</li>
</ul>
<hr><a name="details"></a><h2>Detailed Description</h2>


The QLayoutIterator class provides iterators over <a href="qlayoutitem.html">QLayoutItem</a>.
<p> 

<p> Use <a href="qlayoutitem.html#iterator">QLayoutItem::iterator</a>() to create an iterator over a layout.
<p> QLayoutIterator uses <em>explicit</em> sharing with a reference count.
If an iterator is copied and one of the copies is modified, both
iterators will be modified.
<p> A QLayoutIterator is not protected against changes in its layout. If
the layout is modified or deleted the iterator will become invalid.
It is not possible to test for validity. It is safe to delete an
invalid layout; any other access may lead to an illegal memory
reference and the abnormal termination of the program.
<p> Calling <a href="#takeCurrent">takeCurrent</a>() or <a href="#deleteCurrent">deleteCurrent</a>() leaves the iterator in a
valid state, but may invalidate any other iterators that access the
same layout.
<p> The following code will draw a rectangle for each layout item in
the layout structure of the widget.
<pre>
    static void paintLayout( <a href="qpainter.html">QPainter</a> *p, QLayoutItem *lay )
    {
        QLayoutIterator it = lay-&gt;iterator();
        <a href="qlayoutitem.html">QLayoutItem</a> *child;
        while ( (child = it.<a href="#current">current</a>()) != 0 ) {
            paintLayout( p, child );
            ++it;
        }
        p-&gt;<a href="qpainter.html#drawRect">drawRect</a>( lay-&gt;geometry() );
    }
    void ExampleWidget::paintEvent( <a href="qpaintevent.html">QPaintEvent</a> * )
    {
        <a href="qpainter.html">QPainter</a> p( this );
        if ( layout() )
            paintLayout( &amp;p, layout() );
    }
    </pre>
 
<p> All the functionality of QLayoutIterator is implemented by
subclasses of <a href="qglayoutiterator.html">QGLayoutIterator</a>. QLayoutIterator itself is not
designed to be subclassed.
<p>See also <a href="appearance.html">Widget Appearance and Style</a> and <a href="geomanagement.html">Layout Management</a>.

<hr><h2>Member Function Documentation</h2>
<h3 class=fn><a name="QLayoutIterator"></a>QLayoutIterator::QLayoutIterator ( <a href="qglayoutiterator.html">QGLayoutIterator</a>&nbsp;*&nbsp;gi )
</h3>

<p> Constructs an iterator based on <em>gi</em>. The constructed iterator
takes ownership of <em>gi</em> and will delete it.
<p> This constructor is provided for layout implementors. Application
programmers should use <a href="qlayoutitem.html#iterator">QLayoutItem::iterator</a>() to create an
iterator over a layout.

<h3 class=fn><a name="QLayoutIterator-2"></a>QLayoutIterator::QLayoutIterator ( const&nbsp;<a href="qlayoutiterator.html">QLayoutIterator</a>&nbsp;&amp;&nbsp;i )
</h3>

<p> Creates a <a href="shclass.html#shallow-copy">shallow copy</a> of <em>i</em>, i.e. if the copy is modified, then
the original will also be modified.

<h3 class=fn><a name="~QLayoutIterator"></a>QLayoutIterator::~QLayoutIterator ()
</h3>

<p> Destroys the iterator.

<h3 class=fn><a href="qlayoutitem.html">QLayoutItem</a>&nbsp;* <a name="current"></a>QLayoutIterator::current ()
</h3>

<p> Returns the current item, or 0 if there is no current item.

<h3 class=fn>void <a name="deleteCurrent"></a>QLayoutIterator::deleteCurrent ()
</h3>

<p> Removes and deletes the current child item from the layout and
moves the iterator to the next item. This iterator will still be
valid, but any other iterator over the same layout may become
invalid.

<h3 class=fn><a href="qlayoutitem.html">QLayoutItem</a>&nbsp;* <a name="operator++"></a>QLayoutIterator::operator++ ()
</h3>

<p> Moves the iterator to the next child item and returns that item,
or 0 if there is no such item.

<h3 class=fn><a href="qlayoutiterator.html">QLayoutIterator</a>&nbsp;&amp; <a name="operator-eq"></a>QLayoutIterator::operator= ( const&nbsp;<a href="qlayoutiterator.html">QLayoutIterator</a>&nbsp;&amp;&nbsp;i )
</h3>

<p> Assigns <em>i</em> to this iterator and returns a reference to this
iterator.

<h3 class=fn><a href="qlayoutitem.html">QLayoutItem</a>&nbsp;* <a name="takeCurrent"></a>QLayoutIterator::takeCurrent ()
</h3>

<p> Removes the current child item from the layout without deleting
it, and moves the iterator to the next item. Returns the removed
item, or 0 if there was no item to be removed. This iterator will
still be valid, but any other iterator over the same layout may
become invalid.

<!-- eof -->
<hr><p>
This file is part of the <a href="index.html">Qt toolkit</a>.
Copyright &copy; 1995-2007
<a href="http://www.trolltech.com/">Trolltech</a>. All Rights Reserved.<p><address><hr><div align=center>
<table width=100% cellspacing=0 border=0><tr>
<td>Copyright &copy; 2007
<a href="troll.html">Trolltech</a><td align=center><a href="trademarks.html">Trademarks</a>
<td align=right><div align=right>Qt 3.3.8</div>
</table></div></address></body>
</html>