QLayoutIterator - Iterators over
#include <qabstractlayout.h>
Public Members
QLayoutIterator ( QGLayoutIterator * i )
QLayoutIterator ( const QLayoutIterator & i )
~QLayoutIterator ()
QLayoutIterator& operator= ( const QLayoutIterator & i )
QLayoutItem* operator++ ()
QLayoutItem* current ()
QLayoutItem* takeCurrent ()
void deleteCurrent ()
DESCRIPTION
The QLayoutIterator class provides iterators over
QLayoutItem
Use QLayoutItem::iterator() to create an iterator over a
layout.
QLayoutIterator uses explicit sharing with a reference
count. If an iterator is copied, and one of the copies is
modified, both iterators will be modified.
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.
Calling takeCurrent() or deleteCurrent() leaves the
iterator in a valid state, but may invalidate any other
iterators that access the same layout.
The following code will draw a rectangle for each layout
item in the layout structure of the widget.
static void paintLayout( QPainter *p, QLayoutItem *lay )
{
QLayoutIterator it = lay->iterator();
QLayoutItem *child;
while ( (child = it.current() ) ) {
paintLayout( p, child );
it.next();
}
p->drawRect( lay->geometry() );
}
void ExampleWidget::paintEvent( QPaintEvent * )
{
QPainter p( this );
paintLayout( &p, layout() );
}
All the functionality of QLayoutIterator is implemented by
subclasses of QGLayoutIterator. Note that there is not
much point in subclassing QLayoutIterator, since none of
the functions are virtual.
MEMBER FUNCTION DOCUMENTATION
QLayoutIterator::QLayoutIterator ( QGLayoutIterator * gi )
Constructs an iterator based on gi. The constructed
iterator takes ownership of gi, and will delete it.
This constructor is provided for layout implementors.
Application programmers should use QLayoutItem::iterator()
to create an iterator over a layout.
QLayoutIterator::QLayoutIterator ( const QLayoutIterator & i )
Creates a shallow copy of i; if the copy is modified, then
the original will also be modified.
QLayoutIterator::~QLayoutIterator ()
Destroys the iterator.
QLayoutItem * QLayoutIterator::current ()
Returns the current item, or 0 if there is no current
item.
void QLayoutIterator::deleteCurrent ()
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.
QLayoutItem * QLayoutIterator::operator++ ()
Moves the iterator to the next child item, and returns
that item, or 0 if there is no such item.
QLayoutIterator & QLayoutIterator::operator= ( const
QLayoutIterator & i )
Assigns i to this iterator and returns a reference to this
iterator.
QLayoutItem * QLayoutIterator::takeCurrent ()
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.
SEE ALSO
http://doc.trolltech.com/qlayoutiterator.html
http://www.trolltech.com/faq/tech.html
Copyright 1992-2001 Trolltech AS,
http://www.trolltech.com. See the license file included
in the distribution for a complete license statement.
AUTHOR
Generated automatically from the source code.
BUGS
If you find a bug in Qt, please report it as described in
http://doc.trolltech.com/bughowto.html. Good bug reports
make our job much simpler. Thank you.
In case of content or formattting problems with this
manual page, please report them to qt-bugs@trolltech.com.
Please include the name of the manual page
(qlayoutiterator.3qt) and the Qt version (2.3.1).
Man(1) output converted with
man2html