Да я уже спрашивал про модель, но я спрашивал немного про другое, не замечаете? Ту проблему я решил. И даже написал, в чём именно была ошибка.
код удаления строки:
bool MyModel::removeRows(int row, int count, const QModelIndex &parent)
{// row=1, always
beginInsertRows(parent, row, row + count - 1);
vec->delRow(row);
endInsertRows();
return true;
}
vec - это объект класса Vector2dRoles.
vector2droles.h:
#ifndef VECTOR2DROLES_H
#define VECTOR2DROLES_H
#include <QVector>
#include <QColor>
class Vector2dRoles
{
public:
Vector2dRoles();
Vector2dRoles(int _sizeX, int _sizeY);
void appendRow(QColor _clr, QString _str);
void delRow(int numRow);
QVector< QVector< QString > > str;
QVector< QVector< QColor > > clr;
private:
int sizeY;
QString dftStr;
QColor dftClr;
};
#endif // VECTOR2DROLES_H
vector2droles.cpp:
#include "vector2droles.h"
#include <QDebug>
Vector2dRoles::Vector2dRoles(int _sizeX, int _sizeY)
{
dftStr = "";
dftClr = QColor(Qt::gray);
sizeY = _sizeY;
str = QVector< QVector< QString > >(_sizeX, QVector< QString >(_sizeY, dftStr));
clr = QVector< QVector< QColor > >(_sizeX, QVector< QColor >(_sizeY, dftClr));
}
void Vector2dRoles::appendRow(QColor _clr, QString _str)
{
QVector<QString> strVec = QVector<QString>(sizeY, _str);
QVector<QColor> clrVec = QVector<QColor>(sizeY, _clr);
str.append(strVec);
clr.append(clrVec);
}
void Vector2dRoles::delRow(int numRow)
{
str.remove(numRow);
clr.remove(numRow);
}