Доброе время суток.
Интересует идеологически правильное создание виртуальных списков.
Задача: Необходим список, могущий отображать элементы, количество которых может изменяться за время существования списка (из-за фильтров, изменения данных, откуда берется список и т.п.) Также необходима возможность сортировки списка по различным критериям.
Интересует не готовое решение, а общий подход к решению такой проблемы.
Буду благодарить оценками, если пнете меня в нужном направлении.
Спасибо
... << RSDN@Home 1.1.4 beta 6 rev. 433>>
Здравствуйте, Mamut, Вы писали:
M>Доброе время суток.
M>Интересует идеологически правильное создание виртуальных списков.
M>Задача: Необходим список, могущий отображать элементы, количество которых может изменяться за время существования списка (из-за фильтров, изменения данных, откуда берется список и т.п.) Также необходима возможность сортировки списка по различным критериям.
M>Интересует не готовое решение, а общий подход к решению такой проблемы.
Мне очень нравится сама идея виртуальных списков, так как позволяет отделить отображение данных и непосредственную работу с данными (хранение, сортировка, фильтрация). Поэтому вирт. списки испольую часто.
Обычно делаю следующим образом:
Есть класс storage, который хранит все данные.
Есть класс recordset, который хранит итераторы storage (typedef std::vector<storage::iterator> recordset)
у storage есть различные функции обработки (sort, select(filter) ...часто можно сделать одну функцию execute(recordset&, const query&) ). которая заполняет recordset.
Вид который является владельцем вирт. списка хранит у себя recordset.
Примерно так. Идеологическую правильность не гарантирую
M>Буду благодарить оценками, если пнете меня в нужном направлении.
Ничяго не надо
Здравствуйте, Mamut, Вы писали:
M>Буду благодарить оценками, если пнете меня в нужном направлении.
List-view control in virtual mode.
M>>Буду благодарить оценками, если пнете меня в нужном направлении.
K>Ничяго не надо
Поздно, уже закомпостировали
... << RSDN@Home 1.1.4 beta 6 rev. 433>>
W>List-view control in virtual mode.
Спасибо. И ведь я знал об этой статье! (склероз, однако...)
*Тяжело вздыхает. Теперь это перевести на Qt
*
... << RSDN@Home 1.1.4 beta 6 rev. 433>>