(1)本类相对于其基类,没有做大的扩展,所以不再测试了 :
class Q_CORE_EXPORT QAbstractListModel : public QAbstractItemModel
{
Q_OBJECT //又插入了此宏
protected:
QAbstractListModel(QAbstractItemModelPrivate & dd, QObject * parent); //有参构造函数
private:
Q_DISABLE_COPY(QAbstractListModel)
QModelIndex parent(const QModelIndex & child ) const override; //私有函数不能再被调用了
int columnCount(const QModelIndex & parent) const override;
bool hasChildren(const QModelIndex & parent) const override;
public:
explicit QAbstractListModel(QObject * parent = nullptr); //有参构造函数
~QAbstractListModel(); //析构函数
using QObject::parent; //QObject * QObject::parent() const 返回本对象的容器父类
//Reimplements: QAbstractItemModel::flags(const QModelIndex & index) const.
Qt::ItemFlags flags(const QModelIndex & index) const override;
//QModelIndex QAbstractItemModel::index(int row, int column,
// const QModelIndex & parent = QModelIndex()) const = 0;
//本子类相对于父类,重写此函数的不同之处,就是为形参 2的列参数指定了默认值,因为只有一列。
//Returns the index of the data in row and column with parent.
QModelIndex index(int row, int column = 0, //也是重写的基类成员函数
const QModelIndex & parent = QModelIndex()) const override;
QModelIndex sibling(int row, int column, const QModelIndex & idx) const override;
//Reimplements: QAbstractItemModel::sibling(int row, int column, QModelIndex & index).
bool dropMimeData(const QMimeData * data, Qt::DropAction action, //也是重写父类成员函数
int row, int column, const QModelIndex & parent) override;
//Reimplements: QAbstractItemModel::dropMimeData(QMimeData * data,
// Qt::DropAction action, int row, int column, QModelIndex & parent).
}; //完结 class QAbstractListModel : public QAbstractItemModel
(2)给出本类的继承关系图 :

(3)表格基类里的内容也非常少:
class Q_CORE_EXPORT QAbstractTableModel : public QAbstractItemModel
{
Q_OBJECT //又插入了此宏
protected:
QAbstractTableModel(QAbstractItemModelPrivate & dd, QObject * parent); //有参构造函数
private:
Q_DISABLE_COPY(QAbstractTableModel)
QModelIndex parent(const QModelIndex & child ) const override; //禁用了这俩函数
bool hasChildren(const QModelIndex & parent) const override;
public:
explicit QAbstractTableModel(QObject * parent = nullptr); //有参构造函数
~QAbstractTableModel(); //析构函数
using QObject::parent ; //QObject * QObject::parent() const 返回本对象的容器父类
//Reimplements: QAbstractItemModel::flags(const QModelIndex & index) const.
Qt::ItemFlags flags(const QModelIndex & index) const override;
//QModelIndex QAbstractItemModel::index(int row, int column,
// const QModelIndex & parent = QModelIndex()) const = 0;
//Returns the index of the data in row and column with parent.
QModelIndex index(int row, int column,
const QModelIndex & parent = QModelIndex() ) const override;
//Reimplements: QAbstractItemModel::index(int row, int column, QModelIndex & parent).
//Returns the index of the data in row and column with parent.
QModelIndex sibling(int row, int column, const QModelIndex & idx) const override;
bool dropMimeData(const QMimeData * data, Qt::DropAction action,
int row, int column, const QModelIndex & parent) override;
//Reimplements: QAbstractItemModel::dropMimeData(QMimeData * data,
// Qt::DropAction action, int row, int column, QModelIndex & parent).
}; //完结 class QAbstractTableModel : public QAbstractItemModel
(4)
谢谢
QT6中QAbstractListModel列表模型基类
1720

被折叠的 条评论
为什么被折叠?



