Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: alex-v от Ноябрь 09, 2011, 20:48



Название: В моделе не работает headerData
Отправлено: alex-v от Ноябрь 09, 2011, 20:48
Создал свою модель на основе 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");
}
//--------------------------------------------------------------------------

подскажите, в  чем может быть дело?
спасибо.


Название: Re: В моделе не работает headerData
Отправлено: alexman от Ноябрь 09, 2011, 20:58
QVariant QAbstractItemModel::headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const [virtual]
Сравните :)


Название: Re: В моделе не работает headerData
Отправлено: alex-v от Ноябрь 09, 2011, 21:27
QVariant QAbstractItemModel::headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const [virtual]
Сравните :)
Действительно! :) невнимательность моя....