The QAbstractListModel class provides an abstract model that can be subclassed to create one-dimensional list models. More...
Inherited by: QStringListModel.
|QAbstractListModel ( QObject * parent = 0 )|
Reimplemented Public Functions
|virtual bool||dropMimeData ( const QMimeData * data, Qt::DropAction action, int row, int column, const QModelIndex & parent )|
|virtual QModelIndex||index ( int row, int column = 0, const QModelIndex & parent = QModelIndex() ) const|
Additional Inherited Members
- 1 property inherited from QObject
- 2 public slots inherited from QAbstractItemModel
- 1 public slot inherited from QObject
- 18 signals inherited from QAbstractItemModel
- 1 signal inherited from QObject
- 7 static public members inherited from QObject
- 21 protected functions inherited from QAbstractItemModel
- 8 protected functions inherited from QObject
- 1 protected slot inherited from QAbstractItemModel
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.
Note that QAbstractListModel provides a default implementation of columnCount() that informs views that there is only a single column of items in this model.
Models that provide interfaces to resizable list-like data structures can provide implementations of insertRows() and removeRows(). When implementing these functions, it is important to call the appropriate functions so that all connected views are aware of any changes:
- An insertRows() implementation must call beginInsertRows() before inserting new rows into the data structure, and it must call endInsertRows() immediately afterwards.
- A removeRows() implementation must call beginRemoveRows() before the rows are removed from the data structure, and it must call endRemoveRows() immediately afterwards.
Note: Some general guidelines for subclassing models are available in the Model Subclassing Reference.
See also Model Classes, Model Subclassing Reference, QAbstractItemView, QAbstractTableModel, and Item Views Puzzle Example.
Member Function Documentation
QAbstractListModel::QAbstractListModel ( QObject * parent = 0 )
Constructs an abstract list model with the given parent.
Destroys the abstract list model.
bool QAbstractListModel::dropMimeData ( const QMimeData * data, Qt::DropAction action, int row, int column, const QModelIndex & parent ) [virtual]
Reimplemented from QAbstractItemModel::dropMimeData().
QModelIndex QAbstractListModel::index ( int row, int column = 0, const QModelIndex & parent = QModelIndex() ) const [virtual]
Reimplemented from QAbstractItemModel::index().
Returns the index of the data in row and column with parent.
See also parent().
© 2013 Digia Plc and/or its subsidiaries. Documentation contributions included herein are the copyrights of their respective owners.
The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation.
Documentation sources may be obtained from www.qt-project.org.