QAbstractListModel 類

QAbstractListModel 類提供可以被子類化以創建一維列錶模型的抽象模型。 更多...

頭: #include <QAbstractListModel>
qmake: QT += core
繼承: QAbstractItemModel
繼承者:

QStringListModel

公共函數

QAbstractListModel (QObject * parent = nullptr)
virtual ~QAbstractListModel ()

重實現公共函數

virtual bool dropMimeData (const QMimeData * data , Qt::DropAction action , int row , int column , const QModelIndex & parent ) override
virtual Qt::ItemFlags flags (const QModelIndex & index ) const override
virtual QModelIndex index (int row , int column = 0, const QModelIndex & parent = QModelIndex()) const override
virtual QModelIndex sibling (int row , int column , const QModelIndex & idx ) const override

詳細描述

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 代替。

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 () 和 data () functions. Well behaved models also provide a headerData () 實現。

If your model is used within QML and requires roles other than the default ones provided by the roleNames () function, you must override it.

For editable list models, you must also provide an implementation of setData (), and implement the flags () function so that it returns a value containing Qt::ItemIsEditable .

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 () 和 removeRows (). When implementing these functions, it is important to call the appropriate functions so that all connected views are aware of any changes:

注意: 用於子類化模型的一些一般可用指導方針,在 模型子類化參考 .

另請參閱 模型類 , 模型子類化參考 , QAbstractItemView , QAbstractTableModel ,和 項視圖拼圖範例 .

成員函數文檔編製

QAbstractListModel:: QAbstractListModel ( QObject * parent = nullptr)

Constructs an abstract list model with the given parent .

[虛擬] QAbstractListModel:: ~QAbstractListModel ()

Destroys the abstract list model.

[override virtual] bool QAbstractListModel:: dropMimeData (const QMimeData * data , Qt::DropAction action , int row , int column , const QModelIndex & parent )

重實現: QAbstractItemModel::dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).

[override virtual] Qt::ItemFlags QAbstractListModel:: flags (const QModelIndex & index ) const

重實現: QAbstractItemModel::flags (const QModelIndex &index) const.

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

重實現: QAbstractItemModel::index (int row, int column, const QModelIndex &parent) const.

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

另請參閱 parent ().

[override virtual] QModelIndex QAbstractListModel:: sibling ( int row , int column , const QModelIndex & idx ) const

重實現: QAbstractItemModel::sibling (int row, int column, const QModelIndex &index) const.