Здравствуйте, модель в виде таблицы из 3х столбцов и от 0 строк, унаследовал от QAbstractTableModel
#ifndef GAMETABLE_H
#define GAMETABLE_H
#include <QtCore/QAbstractTableModel>
#include <QtCore/QVector>
#include <QtCore/QString>
class GameTable : public QAbstractTableModel
{Q_OBJECT
public:
GameTable(QObject * = 0);
void getNewData();
protected:
QVariant data(const QModelIndex&, int = Qt::DisplayRole) const;
int rowCount(const QModelIndex&) const;
int columnCount(const QModelIndex&) const;
bool insertRows(int row, int count, const QModelIndex & parent = QModelIndex());
bool removeRows(int row, int count, const QModelIndex & parent = QModelIndex());
private:
QVector<QVector<QString> > m_data;
QVector<QVector<QString> > new_data;
public slots:
void addRow(QVector<QVector<QString> >);
};
#endif // GAMETABLE_H
#include "gametable.h"
GameTable::GameTable(QObject *parent) : QAbstractTableModel(parent)
{
}
QVariant GameTable::data(const QModelIndex &index, int nRole) const
{
if (!index.isValid())
{
return QVariant();
}
if(nRole == Qt::DisplayRole)
return m_data[index.row()][index.column()];
}
int GameTable::rowCount(const QModelIndex&) const
{
return m_data.size();
}
int GameTable::columnCount(const QModelIndex&) const
{
return 3;
}
bool GameTable::insertRows(int row, int count, const QModelIndex & parent)
{
beginInsertRows(parent, row, row + count - 1);
getNewData();
endInsertRows();
return true;
}
bool GameTable::removeRows(int row, int count, const QModelIndex & parent)
{
beginRemoveRows(parent, row, row + count - 1);
getNewData();
endRemoveRows();
return true;
}
void GameTable::addRow(QVector<QVector<QString> > data)
{
new_data = data;
insertRows(0, 1);
}
void GameTable::getNewData()
{
m_data = new_data;
}
При добавлении строк и resize окна вылетает, вроде делал по примерам, не могу понять в чем ошибка.