Russian Qt Forum

Qt => Model-View (MV) => Тема начата: JamS007 от Февраль 11, 2011, 20:25



Название: Помогите построить правильную архитектуру модели
Отправлено: JamS007 от Февраль 11, 2011, 20:25
Доброго времени суток.

Помогите, пожалуйста, построить модель как во вложении. Попробую пояснить что требуется: на форме будет 3 таблицы, каждая из которых будет отображать часть информации, которая является общей для всех. К примеру - школьный журнал, слева 2 колонки с номерами учеников и их фамилиями, сверху строка с датами, а на их пересечении - оценка, требуется создать что-то подобное.

Еще нужно сделать общее для всех выделение, то есть, при выделении столбца дат, нужно выделять также столбец с оценками, а при выделении строки с учеником - выделять строку с оценкой.

В примерах в ассистенте есть пример с выделением, но там используется одна общая модель и похожие по типу представления, поэтому, думаю, мне это не подходит, но я еще не уверен.

Еще такой вопрос: есть ли способ как-то указать в виджете представления строки (столбцы, или и то и другое вместе) которые будут отображаться из модели, и таким способом отображать разные данные из одной модели, но в разных представлениях? И чем мне это грозит?

Прошу, подскажите куда копать, с моделями еще не работал. Спасибо.


Название: Re: Помогите построить правильную архитектуру модели
Отправлено: trot от Февраль 12, 2011, 00:08
Предлагается следующий вариант. Создать класс (А), который хранит данные в виде - таблица. Этот класс будет генерить три модели (м1,м2,м3) для каждого представления (п1,п2,п3). Создать класс (к) курсора, который будет хранить указатель на выбранную запись в классе А. Этот указатель может перемещать, т.е. то или иное выделение строки или столбца, любое представление. После перемещения указателя остальные два представления синхронизируют свое состояние (типичный паттерн издатель-подписчик).