|  | Home · All Classes · Main Classes · Grouped Classes · Modules · Functions |

# QStandardItemModel Class Reference
[QtGui module]

The QStandardItemModel class provides a generic model for storing custom data. More...

    #include <QStandardItemModel>

Inherits QAbstractItemModel.

- List of all members, including inherited members

### Public Functions

- QStandardItemModel ( QObject * parent = 0 )
- QStandardItemModel ( int rows, int columns, QObject * parent = 0 )
- ~QStandardItemModel ()
- void clear ()
- virtual int columnCount ( const QModelIndex & parent = QModelIndex() ) const
- virtual QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const
- virtual Qt::ItemFlags flags ( const QModelIndex & index ) const
- virtual bool hasChildren ( const QModelIndex & parent = QModelIndex() ) const
- virtual QModelIndex index ( int row, int column, const QModelIndex & parent = QModelIndex() ) const
- virtual bool insertColumns ( int column, int count, const QModelIndex & parent = QModelIndex() )
- virtual bool insertRows ( int row, int count, const QModelIndex & parent = QModelIndex() )
- virtual QModelIndex parent ( const QModelIndex & child ) const
- virtual bool removeColumns ( int column, int count, const QModelIndex & parent = QModelIndex() )
- virtual bool removeRows ( int row, int count, const QModelIndex & parent = QModelIndex() )
- virtual int rowCount ( const QModelIndex & parent = QModelIndex() ) const
- virtual bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole )

- 32 public functions inherited from QAbstractItemModel
- 28 public functions inherited from QObject

### Additional Inherited Members

- 1 property inherited from QObject
- 2 public slots inherited from QAbstractItemModel
- 1 public slot inherited from QObject
- 12 signals inherited from QAbstractItemModel
- 1 signal inherited from QObject
- 4 static public members inherited from QObject
- 13 protected functions inherited from QAbstractItemModel
- 7 protected functions inherited from QObject

## Detailed Description

The QStandardItemModel class provides a generic model for storing custom data.

QStandardItemModel provides a model that that can be used as a repository for standard Qt data types. Data is written to the model and read back using the standard QAbstractItemModel interface. The way each item of information is referenced depends on how the data is inserted into the model.

For performance and flexibility, you may want to subclass QAbstractItemModel to provide support for different kinds of repositories. For example, the QDirModel provides a model interface to the underlying file system, and does not actually store file information internally.

An example usage of QStandardItemModel to create a table:

            QStandardItemModel model(4, 2);
            for (int row = 0; row < 4; ++row) {
                for (int column = 0; column < 2; ++column) {
                    QModelIndex index = model.index(row, column, QModelIndex());
                    model.setData(index, QVariant((row+1) * (column+1)));
                }
            }

An example usage of QStandardItemModel to create a tree:

        QStandardItemModel *model = new QStandardItemModel();
        QModelIndex parent;
        for (int i = 0; i < 4; ++i) {
            parent = model->index(0, 0, parent);
            model->insertRows(0, 1, parent);
            model->insertColumns(0, 1, parent);
            QModelIndex index = model->index(0, 0, parent);
            model->setData(index, i);
        }

The current implementation of QStandardItemModel only supports adding children index's to the first column.

See also Model/View Programming, QAbstractItemModel, and Simple Tree Model example.

## Member Function Documentation

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

Creates an empty model that contains no rows or columns with the given parent.

### QStandardItemModel::QStandardItemModel ( int rows, int columns, QObject * parent = 0 )

Creates a model with rows number of rows and columns number of columns.

### QStandardItemModel::~QStandardItemModel ()

Destroys the model.

### void QStandardItemModel::clear ()

Clears the model, removing all items.

### int QStandardItemModel::columnCount ( const QModelIndex & parent = QModelIndex() ) const `[virtual]`

Returns the number of columns in the model that contain items with the given parent.

Reimplemented from QAbstractItemModel.

See also rowCount() and insertColumns().

### QVariant QStandardItemModel::data ( const QModelIndex & index, int role = Qt::DisplayRole ) const `[virtual]`

Returns the data for the given index and role.

Reimplemented from QAbstractItemModel.

See also setData(), setHeaderData(), and index().

### Qt::ItemFlags QStandardItemModel::flags ( const QModelIndex & index ) const `[virtual]`

Returns the item flags for the given index.

This model returns returns a combination of flags that enables the item (Qt::ItemIsEnabled), allows it to be selected (Qt::ItemIsSelectable) and edited (Qt::ItemIsEditable).

Reimplemented from QAbstractItemModel.

See also Qt::ItemFlags.

### bool QStandardItemModel::hasChildren ( const QModelIndex & parent = QModelIndex() ) const `[virtual]`

Returns true if the parent model index has child items; otherwise returns false.

To add children use insertColumns() and insertRows().

Reimplemented from QAbstractItemModel.

See also rowCount(), columnCount(), and parent().

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

Returns a model index for the given row, column, and parent.

Reimplemented from QAbstractItemModel.

See also data().

### bool QStandardItemModel::insertColumns ( int column, int count, const QModelIndex & parent = QModelIndex() ) `[virtual]`

Inserts count columns into the model, creating new items as children of the given parent. The new columns are inserted before the column specified.

If column is 0, the columns are prepended to any existing columns in the parent. If column is columnCount(), the columns are appended to any existing columns in the parent. If parent has no children, a single row with count columns is inserted.

Returns true if the columns were successfully inserted; otherwise returns false.

Reimplemented from QAbstractItemModel.

See also insertColumn(), insertRows(), removeColumns(), and columnCount().

### bool QStandardItemModel::insertRows ( int row, int count, const QModelIndex & parent = QModelIndex() ) `[virtual]`

Inserts count rows into the model, creating new items as children of the given parent. The new rows are inserted before the row specified.

If row is 0, the rows are prepended to any existing rows in the parent. If row is rowCount(), the rows are appended to any existing rows in the parent. If parent has no children, a single column with count rows is inserted.

Note that a row with no columns will not show up in the treeview.

Returns true if the rows were successfully inserted; otherwise returns false.

Reimplemented from QAbstractItemModel.

See also insertRow(), insertColumns(), removeRows(), and rowCount().

### QModelIndex QStandardItemModel::parent ( const QModelIndex & child ) const `[virtual]`

Returns a model index for the parent of the child item.

Reimplemented from QAbstractItemModel.

See also hasChildren().

### bool QStandardItemModel::removeColumns ( int column, int count, const QModelIndex & parent = QModelIndex() ) `[virtual]`

Removes count columns from the model, starting with the given column. The items removed are children of the item represented by the parent model index.

Returns true if the columns were successfully removed; otherwise returns false.

Reimplemented from QAbstractItemModel.

See also insertColumns() and columnCount().

### bool QStandardItemModel::removeRows ( int row, int count, const QModelIndex & parent = QModelIndex() ) `[virtual]`

Removes count rows from the model, starting with the given row. The items removed are children of the item represented by the parent model index.

Returns true if the rows were successfully removed; otherwise returns false.

Reimplemented from QAbstractItemModel.

See also insertRows(), removeColumns(), and rowCount().

### int QStandardItemModel::rowCount ( const QModelIndex & parent = QModelIndex() ) const `[virtual]`

Returns the number of rows in the model that contain items with the given parent.

Reimplemented from QAbstractItemModel.

See also columnCount() and insertRows().

### bool QStandardItemModel::setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole ) `[virtual]`

Sets the data for the given index and role to the value specified.

Returns false if index isn't valid.

Reimplemented from QAbstractItemModel.

See also Qt::ItemDataRole, data(), itemData(), and setHeaderData().