Russian Qt Forum

Qt => Общие вопросы => Тема начата: izoomer от Декабрь 08, 2006, 18:25



Название: одна модель для нескольких представлений
Отправлено: izoomer от Декабрь 08, 2006, 18:25
построил модель от QAbstractListModel с такой внутренней структурой
Код:

    QList <QPair<QString,QPair<QImage,QPair<QStringList,QStringList> > > > mainMap;


в методе data данной модели, описываю так
Код:

QVariant MainModel::data(const QModelIndex &index, int role) const
{
    if (!index.isValid()) return QVariant();
    if (!index.row() >= mainMap.size()) return QVariant();
    if (role == Qt::DisplayRole) return mainMap.at(index.row());
        else return QVariant();
}


В каком методе представления (от QAbstractItemView) нужно определять какие данные из возвращаемого QVariant нужно брать что бы отборазить в списке (например в одном списке нужно отобразить mainMap.at(index.row()).first а в другом mainMap.at(index.row()).second.second.first)  ?


Название: одна модель для нескольких представлений
Отправлено: Tonal от Декабрь 08, 2006, 21:24
У тебя есть данные.
Их надо показать разными способами.
Делаешь столько моделей, сколько способов отображения.
Все модели обращаются к одним и тем же исходным данным.
Цепляешь каждую модель к своему QХххView и...
Шастье! ;-)