Есть, такие переменные. struct City { int houses_count; } struct House//дом не знает

сколько домов в городе
{
int apartment_count;
}

House houses[MAX_H]

struct Apartment//квартира, не знает сколько заселено
{
int persons_count;
int temp;
}

Apartment apartments[MAX_H][MAX_A];//массив всех возможных квартир во всех домах

Теперь надо отобразить в виде таблицы модель City->Apartments (DisplayRole == persons_count, BackgroundRole = (temp > 30)? red:green;)
Делаем модель для города:
CityModel :
ColCount = 1 ;
rowCount = 1//houses_count;
data(index) {
return houses_count
};

HousesModel:
setCityModelPtr(CityModel* cmp);
ColCount 1//flat_count;
RowCount = MAX_H;//housesCount;
data(index) {
if (index.row() < cmd.data())//если надо отобразить построеный дом
return houses[index.row].apartment_count;

return -1;//признак что дома такого нет
};

И теперь основная модель, для отображения:
CityApartmentsModel:
SetCityModelPtr(CityModel* cmp);
SetHousesModelPtr(HousesModel* hmp);
ColCount = MAX_A;//отображаем возможное число квартир
RowCount = MAX_H;//отображаем максимальное число домов

data (index) {
if (index.row() < cmp.data() && index.col() < hmp.data(index.row).apartment_count) { //дом построен и заселен
if (DisplayRole)
return apartments[index.row()][index.col()].persons_count;
if (BackgroundRole) {
return (apartments[index.row()][index.col()].temp > 30)? red:green;
}
}
else {//для не существующих или незаселенных квартир
if (DisplayRole) return -1;
if (BackgroundRole) return gray;
}//if (index)
}//data

Данные масивов обновляются сами по себе.
Меня в этом всем смущает необходимость тащить указатели на "старшие" модели, для самой последней, чтобы определить "валидные" дома и квартиры.
Что можете подсказать?

1 ответов

4 просмотра

> чтобы определить "валидные" дома и квартиры. Что можете подсказать? может быть стоить подумать на счёт filter-proxy-моделей?

Похожие вопросы

Обсуждают сегодня

Добрый день, не подскажите, если в OC-V3 поменять страндартную директорию /storage/ на /storage2/ - не будет сильно много проблем ?
Max Dubovsky
32
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Каким то образом можно определить ширину экрана пользователя перед загрузкой partial-а? Надо рассчитать ширину кадров слайдера для ресайза картинок для container-fluid.
Point 111
22
А сколько часов мак держит зарядку в рабочем режиме? Например мой Redmi Mac (просто наклейка от айфона осталась, налепил) по началу держал часов 5 с парой открытых штормов и ...
Ross
8
Ребят, было ли у вас так, что переменные в WebApp —tg-viewport-height, —tg-viewport-stable-height после метода expand не обновляются, а остаются в размерах, как было до expand...
Black
3
Ребят, а вот такой вопрос: если я владелец бота анонимного чата, в котором, например, имеются подписки, используя какую-нибудь ЮКассу (или тому подобное, в общем с налогами, в...
Eugene Неелов
8
Гнева и тупости пост. Как блять можно работать с маркетологами? Их в детстве всех родители случайно цепляли об дверные откосы? Поступила таска, на сайте "лишний счетчик Google...
Igor
4
Вообще сейчас эти все провайдеры облаков оборзели. Если тебе нужно 4 ядра и 4 гб., хер где такую конфигурацию найдешь. Суют тебе сразу либо 8гб. либоа сразу 16 гб., они мне на...
Igor
4
а у тг (бот) апи вообще есть статусная страница, кстати?
e\\/gen
5
Короче получается только кнопки не поменять А кнопки вроде тоже слетают при редактировании не?
inc.
10
Карта сайта