QAbstractTableModel 類

QAbstractTableModel 類提供可以子類化以創建錶格模型的抽象模型。 更多...

頭: #include <QAbstractTableModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
繼承: QAbstractItemModel
繼承者:

QSqlQueryModel

公共函數

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

重實現公共函數

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 , const QModelIndex & parent = QModelIndex()) const override
virtual QModelIndex sibling (int row , int column , const QModelIndex & idx ) const override

詳細描述

QAbstractTableModel provides a standard interface for models that represent their data as a two-dimensional array 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, although it can be used to provide data to a QListView . If you need to represent a simple list of items, and only need a model to contain a single column of data, subclassing the QAbstractListModel may be more appropriate.

The rowCount () 和 columnCount () functions return the dimensions of the table. To retrieve a model index corresponding to an item in the model, use index () and provide only the row and column numbers.

子類化

When subclassing QAbstractTableModel, you must implement rowCount (), columnCount (),和 data (). Default implementations of the index () 和 parent () functions are provided by QAbstractTableModel. Well behaved models will also implement headerData ().

Editable models need to implement setData (), and implement flags () to return a value containing Qt::ItemIsEditable .

為可重置大小的數據結構提供接口的模型,可以提供實現 insertRows (), removeRows (), insertColumns (),和 removeColumns (). When implementing these functions, it is important to call the appropriate functions so that all connected views are aware of any changes:

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

綫程安全

子類化的 QObject , QAbstractTableModel is not 綫程安全 . Any QAbstractTableModel model-related API should only be called from the thread the model object lives in. If the QAbstractTableModel is connected with a view, that means the GUI thread, as that is where the view lives, and it will call into the model from the GUI thread. Using a background thread to populate or modify the contents of a model is possible, but requires care, as the background thread cannot call any model-related API directly. Instead, you should queue the updates and apply them in the main thread. This can be done with 隊列連接 .

另請參閱 模型類 , QAbstractItemModel ,和 QAbstractListModel .

成員函數文檔編製

[explicit] QAbstractTableModel:: QAbstractTableModel ( QObject * parent = nullptr)

構造抽象錶格模型為給定 parent .

[virtual noexcept] QAbstractTableModel:: ~QAbstractTableModel ()

銷毀抽象錶格模型。

[override virtual] bool QAbstractTableModel:: 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 QAbstractTableModel:: flags (const QModelIndex & index ) const

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

[override virtual] QModelIndex QAbstractTableModel:: index ( int row , int column , 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 QAbstractTableModel:: sibling ( int row , int column , const QModelIndex & idx ) const

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