Не работает QAbstractItemModel.
заголовок
#ifndef TESTMODEL_H
#define TESTMODEL_H
#include <QAbstractItemModel>
class TestModel : public QAbstractItemModel
{
Q_OBJECT
public:
TestModel(QObject *parent = 0);
virtual int columnCount(const QModelIndex &parent = QModelIndex()) const;
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const;
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
virtual QModelIndex parent(const QModelIndex &index) const;
};
#endif // TESTMODEL_H
Реализация
#include "testmodel.h"
TestModel::TestModel(QObject *parent)
:QAbstractItemModel(parent)
{
}
int TestModel::columnCount(const QModelIndex &parent) const
{
return 2;
}
QVariant TestModel::data(const QModelIndex &index, int role) const
{
int row = index.row();
int column = index.column();
if (!index.isValid() || row >= rowCount() || column >= columnCount())
return QVariant();
return "Hello word";
}
QModelIndex TestModel::index(int row, int column, const QModelIndex &parent) const
{
return createIndex(row, column, (void*)0);
}
QModelIndex TestModel::parent(const QModelIndex &index) const
{
return QModelIndex();
}
int TestModel::rowCount(const QModelIndex &parent) const
{
return 2;
}
rowCount() и columnCount() возращают размер модели 2х2. Ожидаю увидеть в QTreeView таблицу 2х2, в каждой клетке должно быть "Hello word". Но клеток нет.
только горизонтальный заголовок с двумя колонками. Примеров построения
холовордной модели QAbstractItemModel не нашел. Подскажите, чего не хватает, чтобы отобразить таблицу 2х2?