1.通过c++代码实现model,继承自QAbstractItemModel,代码如下:
①头文件实现如下(CustomListModel.h):
#ifndef CUSTOMLISTMODEL_H
#define CUSTOMLISTMODEL_H
#include <QAbstractItemModel>
#include "customtype.h"
#include <list>
Q_DECLARE_METATYPE(std::string)
class CustomListModel : public QAbstractItemModel
{
Q_OBJECT
public:
explicit CustomListModel(QObject *parent = nullptr);
virtual QModelIndex index(int row, int column,
const QModelIndex &parent = QModelIndex()) const override;
virtual QModelIndex parent(const QModelIndex &child) const override;
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const override;
virtual int columnCount(const QModelIndex &parent = QModelIndex()) const override;
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const overri