QAbstractTableModel 类提供可以子类化以创建表格模型的抽象模型。 更多...
| 头: |
#include <QAbstractTableModel>
|
| CMake: |
find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
|
| qmake: |
QT += core
|
| 继承: | QAbstractItemModel |
| 继承者: |
| 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 QAbstractTableModel is connected to a view, it operates on the GUI thread, as the view resides there and interacts with the model from that thread. While a background thread can be used to populate or modify the model's contents, it must do so carefully, as it 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.