Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Bepec от Июль 19, 2015, 17:46



Название: Прокручивание и запрос данных из модели
Отправлено: Bepec от Июль 19, 2015, 17:46
Приветствую заглянувших.

Ситуация: Пишу свою модельку, примерно около 700к строк в модели. Наследованная от QAbstractItemModel. Устанавливаю в QTreeView, всё хорошо.
Крутится, запрашивается, реагирует прекрасно.

Проблема: при скроллинге на, допустим, элемент с №п/п 400000, View начинает запрашивать данные у модели с 0 до 400000. Соответственно это подвешивает программу.
Грешил на QScrollBar с отсылкой промежуточных значений, но даже вызов
Код:
ui.treeView->scrollTo(mode->index(400000,0, NULL)) 
заставляет View запрашивать все промежуточные значения.

Вопрос: Как заставить View запрашивать только целевой элемент и видимые. (Т.е.  с 400000 по 400050 )

Возможно есть метод мною не замеченный или какая хитрость.

PS так всё равно зависает
Код:
	ui.treeView->setUpdatesEnabled(false);
ui.treeView->blockSignals(true);

qDebug() << "TRAX";
ui.treeView->verticalScrollBar()->setValue(val);
        
ui.treeView->blockSignals(false);
ui.treeView->setUpdatesEnabled(true);

Решение: установка ui.treeView->setUniformRowHeights(true); в конструкторе.


Название: Re: Прокручивание и запрос данных из модели
Отправлено: Igors от Июль 19, 2015, 18:40
Для начала setUniformRowHeights(true). Не поможет - см в отладчике откуда запрос на невидимые.


Название: Re: Прокручивание и запрос данных из модели
Отправлено: Bepec от Июль 19, 2015, 19:43
Да, именно она всё портила. Благодарю за быстрый и точный ответ.