tableView не может такой объем отрисовывать. Все корректно отрисовывает только около 128к строк.
Для обхода этой проблемы думаю сделать страницы отображения. Как правильно это делать? с какой стороны подходить к решению? Вижу варианты решения:
1. Переделать табличную модель и добавить в нее поле активной страницы.
2. Прокси модель возможно решает такую задачу (не имел опыта работы).
3. Возможно можно сделать через дерево, где отображать (раскрывать) только один узел (страницу) дерева.
опять чувствую что что то не то делаю)
Вы данные с БАК отображаете? ОЗУ не хватит на такую модель мб. А ещё попробуйте её резайзить потом. Сам пытаюсь отобразить нормально 500к элементов. Сделал экспорт в excel и там уже просмотр, работает быстрее и удобнее.
А как они в экселе это сделали?
а грузите вы эти 128 миллионов куда?
Когда-нибудь, на пенсии наверное, я напишу большую статью ( страниц на 100) о том, как я писал csv редактор для редактирования 20гб файлов. Но это не для чата разговор.
Было бы хорошо если бы это сделали пораньше
если вкратце, то там было двигающееся окно, и кэш изменений, который писался во временные файлы, но на загрузку таки приходилось показывать прогресс загрузки, который на самом деле просто пробегал по файлу и индексировал его (тоже во временном каталоге). Клиент был доволен
Значить просто индексировали файл
ну там скорее нужно было это не для индексации, а для подсчёта количества строк. Ну и сама индексация ничем не поможет - тут ведь вопрос в том как индекс использовать. Если вы попытаетесь всё грузить в память, то индекс ничем не поможет
хотя вру конечно, индексация важней количества. Давно было дело, подзабыл уже. Писал на 4-м кьюте по-моему ещё
однажды я использовал StandartItem и в каждом обновление память грузил компа
Вспомнил вот это, попробовал создать ListView на 2000000000 элементов. Qt написало Model size of 2000000000 is bigger than the upper limit 100000000
сделал прокси модель которая показывает область таблицы
Обсуждают сегодня