Создал свою модель на основе QAbstractItemModel. Данные отображаются в таблице QTableView, но не выводятся заголовки столбцов.
Вот код:
#include "BaseTableModel.h"
BaseTableModel::BaseTableModel(QObject *parent) :
QAbstractItemModel(parent)
{
}
//--------------------------------------------------------------------------
void BaseTableModel::setRecords(const QVariantList &records)
{
_records = records;
_rowCount = _records.size();
_columnCount = _rowCount ? _records[0].toList().size() : 0;
}
//--------------------------------------------------------------------------
QVariant BaseTableModel::data(const QModelIndex &item, int role) const
{
if ((role==Qt::DisplayRole || role==Qt::EditRole) && item.row() < _rowCount)
{
if (item.column() < _columnCount)
return _records[item.row()].toList()[item.column()];
}
return QVariant();
}
//--------------------------------------------------------------------------
int BaseTableModel::columnCount ( const QModelIndex & parent ) const
{
return _columnCount;
}
//--------------------------------------------------------------------------
QModelIndex BaseTableModel::index ( int row, int column, const QModelIndex & parent ) const
{
return createIndex(row, column);
}
//--------------------------------------------------------------------------
QModelIndex BaseTableModel::parent ( const QModelIndex & index ) const
{
return QModelIndex();
}
//--------------------------------------------------------------------------
int BaseTableModel::rowCount ( const QModelIndex & parent ) const
{
return _rowCount;
}
//--------------------------------------------------------------------------
void BaseTableModel::update()
{
reset();
//emit dataChanged( createIndex(0,0), createIndex(_rowCount-1, _columnCount-1) );
}
//--------------------------------------------------------------------------
QVariant BaseTableModel::headerData ( int section, Qt::Orientation orientation, int role )
{
return QString("qwe");
}
//--------------------------------------------------------------------------
подскажите, в чем может быть дело?
спасибо.