есть таблица на основе QAbstractTableModel.
class TableModel : public QAbstractTableModel{
public:
TableModel(QObject *parent = 0);
~TableModel();
int rowCount(const QModelIndex &parent = QModelIndex()) const;
int columnCount(const QModelIndex &parent = QModelIndex()) const;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
private:
int rowsCount;
int colsCount;
QList < QList<TableItem *> *> cells;
...
};
Мне нужно убрать строки, переопределять removeColumns я не стал, потому как строки убираются изутри класса.
удаляю так:
void TableModel::clearList() {
beginRemoveRows(QModelIndex(),0,rowsCount);
while (!cells.isEmpty())
{
QList<TableItem *> *row = cells.takeFirst();
if(row)
{
while(row->isEmpty()) delete (TableItem *)row->takeFirst();
row->clear();
delete row;
}
}
cells.clear();
endRemoveRows();
rowsCount = 0;
}
На деле почему то это не работает. т.е. если было например 10 строк с данными, то после вызова clearList() я вижу те же 10 строк только пустые. Выбрать их нельзя, но визуально они есть.
rowCount возвращает 0, beginRemoveRows и endRemoveRows я вызывал. почему же строки остались?