效果:
简述:
主要通过重新实现QAbstractTableModelde的flags来达到预期的效果,实现自定义QAbstractTableModelde的时候,主要重写以下几个函数:
data()
setData()
rowCount()
columnCount()
headerData()
代码:
.h
#ifndef MTABLEMODEL_H
#define MTABLEMODEL_H
#include <QAbstractTableModel>
struct Info
{
QString path;
bool state;
};
class mTableModel : public QAbstractTableModel
{
public:
mTableModel(QObject *parent);
void updateData(QList<Info> InfoList);
QList<Info>m_InfoList;
Qt::ItemFlags flags(const QModelIndex &index) const;
bool setData(const QModelIndex &index, const QVariant &value, int role);
int columnCount(const QModelIndex &parent) const;
int rowCount(const QModelIndex &parent) const;
QVariant data(const QModelIndex &index, int role) const;
QVariant headerData(int section, Qt::Orientation orientation, int role) const;
};
#endif // MTABLEMODEL_H
.cpp
#include "mTableModel.h"
#include <QColor>
mTableModel::mTableModel(QObject *parent):QAbstractTableModel (parent)
{
}
void mTableModel::updateData(QList<Info>InfoList) //更新列表数据
{
m_InfoList= InfoList;
beginResetModel();
endResetModel();
}
int mTableModel::