Russian Qt Forum
Ноябрь 23, 2024, 04:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Прокручивание и запрос данных из модели  (Прочитано 2670 раз)
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); в конструкторе.
« Последнее редактирование: Июль 19, 2015, 19:44 от Bepec » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Июль 19, 2015, 18:40 »

Для начала setUniformRowHeights(true). Не поможет - см в отладчике откуда запрос на невидимые.
Записан
Bepec
Гость
« Ответ #2 : Июль 19, 2015, 19:43 »

Да, именно она всё портила. Благодарю за быстрый и точный ответ.

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.