Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# QAbstractListModel Class Reference

The QAbstractListModel class provides an abstract model that can be subclassed to create one-dimensional list models. More...

    #include <QAbstractListModel>

Inherits QAbstractItemModel.

- List of all members, including inherited members

### Writable Properties

- 1 writable property inherited from QObject

### Public Functions

- QAbstractListModel ( QObject * parent = 0 )
- ~QAbstractListModel ()
- int columnCount () const
- virtual QModelIndex index ( int row, int column = 0, const QModelIndex & parent = QModelIndex::Null ) const
- virtual int rowCount () const = 0

- 31 public functions inherited from QAbstractItemModel
- 24 public functions inherited from QObject

### Public Slots

- 1 public slot inherited from QObject

### Signals

- 6 signals inherited from QAbstractItemModel
- 1 signal inherited from QObject

### Static Public Members

- 4 static public members inherited from QObject

### Protected Functions

- 1 protected function inherited from QAbstractItemModel
- 9 protected functions inherited from QObject

## Detailed Description

The QAbstractListModel class provides an abstract model that can be subclassed to create one-dimensional list models.

QAbstractListModel provides a standard interface for models that represent their data as a simple non-hierarchical sequence of items. It is not used directly, but must be subclassed.

Since the model provides a more specialized interface than QAbstractItemModel, it is not suitable for use with tree views; you will need to subclass QAbstractItemModel if you want to provide a model for that purpose. If you need to use a number of list models to manage data, it may be more appropriate to subclass QAbstractTableModel class instead.

Simple models can be created by subclassing this class and implementing the minimum number of required functions. For example, we could implement a simple read-only QStringList-based model that provides a list of strings to a QListView widget. In such a case, we only need to implement the rowCount() function to return the number of items in the list, and the data() function to retrieve items from the list.

Since the model represents a one-dimensional structure, the rowCount() function returns the total number of items in the model. The columnCount() function is implemented for interoperability with all kinds of views, but by default informs views that the model contains only one column.

When subclassing QAbstractListModel, you must provide implementations of the rowCount() and data() functions. A default implementation of columnCount() is provided that informs views that there is only a single column of items in this model.

See also Model/View Programming, QAbstractItemView, and QAbstractTableView.

## Member Function Documentation

### QAbstractListModel::QAbstractListModel ( QObject * parent = 0 )

Constructs an abstract list model with the given parent.

### QAbstractListModel::~QAbstractListModel ()

Destroys the abstract list model.

### int QAbstractListModel::columnCount () const

Returns the number of columns in the model. List models only contain one column of items.

### QModelIndex QAbstractListModel::index ( int row, int column = 0, const QModelIndex & parent = QModelIndex::Null ) const `[virtual]`

Returns the index of the data in row and column with parent.

Reimplemented from QAbstractItemModel.

See also parent().

### int QAbstractListModel::rowCount () const `[pure virtual]`

Returns the number of rows in the model. The number of rows is equal to the number of items stored in the model.