QAbstractTableModel
bool setData(const QModelIndex &index, const QVariant &value, int role) override;
QAbstractTableModel::setData() 是一个用于设置表格模型中特定索引处的数据的方法。它接收三个参数:
const QModelIndex &index:表示要设置数据的单元格的索引。
const QVariant &value:表示要设置的新值,可以是任何数据类型。
int role:表示要设置的数据的角色,例如 Qt::EditRole(编辑角色)或 Qt::DisplayRole(显示角色)。
该方法返回一个布尔值,表示数据是否成功设置。如果成功设置数据,则返回 true;否则返回 false。
#include <QAbstractTableModel>
#include <QVariant>
class MyTableModel : public QAbstractTableModel
{
Q_OBJECT
public:
MyTableModel(QObject *parent = nullptr);
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
};
bool MyTableModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
if (role == Qt::EditRole) {
int row = index.row();
int column = index.column();
if (!index.isValid()) {
return false;
}
m_data[row][column] = value;
emit dataChanged(index, index);
return true;
}
return false;
}