Folgendes Problem:
Ich hab ein Model gebaut das von QAbstractTableModel erbt. nun Ist der Compiller aber damit nicht glücklich und wirft folgende Fehler:
Code: Alles auswählen
mainwindow.cpp:228: Fehler: es kann kein Objekt des abstrakten Typs »TableModel« belegt werden
TableModel.h:15: Anmerkung: denn die folgenden virtuellen Funktionen sind rein innerhalb »TableModel«:
/usr/include/qt4/QtCore/qabstractitemmodel.h:173: Anmerkung: virtual int QAbstractItemModel::rowCount(const QModelIndex&) const
/usr/include/qt4/QtCore/qabstractitemmodel.h:174: Anmerkung: virtual int QAbstractItemModel::columnCount(const QModelIndex&) const
/usr/include/qt4/QtCore/qabstractitemmodel.h:177: Anmerkung: virtual QVariant QAbstractItemModel::data(const QModelIndex&, int) const
Code: Alles auswählen
TableModel *auslagermodel = new TableModel();
auslagermodel->setTableData(auslager_data);
Code: Alles auswählen
#ifndef TABLEMODEL_H_
#define TABLEMODEL_H_
#include <QAbstractTableModel>
#include <QList>
#include <QStringList>
class TableModel : QAbstractTableModel {
Q_OBJECT
public:
TableModel(QObject *parent = 0)
: QAbstractTableModel(parent) {}
int rowCount(const QModelIndex & parent );
int columnCount(const QModelIndex & parent);
QVariant data(const QModelIndex & index, int role);
QVariant headerData( int section, Qt::Orientation orientation, int role);
bool setTableData(QList<QStringList>);
bool appendHeaderData(QString);
virtual ~TableModel();
private:
QList<QStringList> tabledata;
QStringList header;
};
#endif /* TABLEMODEL_H_ */
Code: Alles auswählen
#include "TableModel.h"
TableModel::TableModel() : QAbstractTableModel(parent) {
// TODO Auto-generated constructor stub
}
TableModel::~TableModel() {
// TODO Auto-generated destructor stub
}
int TableModel::rowCount(const QModelIndex & parent = QModelIndex() )
{
return tabledata.size();
}
int TableModel::columnCount(const QModelIndex & parent = QModelIndex())
{
return tabledata.at(0).size();
}
QVariant TableModel::data(const QModelIndex & index, int role = Qt::DisplayRole)
{
if(index.isValid() && role == Qt::DisplayRole && !(tabledata.isEmpty()))
return tabledata.at(index.row()).at(index.column());
else
return QVariant();
}
QVariant TableModel::headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole)
{
if(orientation == Qt::Horizontal)
return header.at(section);
else
return QVariant();
}
bool TableModel::setTableData(QList<QStringList> input)
{
tabledata = input;
return true;
}
bool TableModel::appendHeaderData(QString input)
{
header.append(input);
return true;
}