| Classes - Annotated - Tree - Functions - Home - Structure

# QFocusData Class Reference

Maintains the list of widgets which can take focus. More...

`#include <qfocusdata.h>`

List of all member functions.

## Public Members

- QWidget* focusWidget () const
- QWidget* home ()
- QWidget* next ()
- QWidget* prev ()
- int count () const

## Detailed Description

Maintains the list of widgets which can take focus.

This read-only list always contains at least one widget (the top-level widget, actually). It provides a simple cursor, which can be reset to the current focus widget using home(), or moved to its neighboring widgets using next() and prev(), and a count() of widgets in the list.

Note that some widgets in the list may not accept focus. Widgets are added to the list as necessary, but not removed from it. This lets widgets change focus policy dynamically without disrupting the focus chain the user sees: When a widget disables and re-enables tab focus, its position in the focus chain does not change.

When reimplementing QWidget::focusNextPrevChild() to provide special focus flow, you will usually call QWidget::focusData() to retrieve the focus data stored at the top-level widget - the focus data for that hierarchy of widgets.

The cursor may change at any time; this class is not thread-safe.

See also QWidget::focusNextPrevChild(), QWidget::setTabOrder() and QWidget::setFocusPolicy().

## Member Function Documentation

### int QFocusData::count () const

Returns a count of the number of widgets in the hierarchy which accept focus.

### QWidget* QFocusData::focusWidget () const

Returns the widgets in the hierarchy which currently has focus.

### QWidget* QFocusData::home ()

Moves the cursor to the focusWidget() and returns that widget. You must call this before next() or prev() to iterate meaningfully.

### QWidget* QFocusData::next ()

Moves the cursor to the right. Note that the focus widgets are a loop of widgets. If you keep calling next(), it will loop, without ever returning 0.

### QWidget* QFocusData::prev ()

Moves the cursor to the left. Note that the focus widgets are a loop of widgets. If you keep calling prev(), it will loop, without ever returning 0.

Search the documentation, FAQ, qt-interest archive and more (uses www.trolltech.com):

This file is part of the Qt toolkit, copyright © 1995-2001 Trolltech, all rights reserved.