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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как при скролле таблицы находить самый верхний topRow?  (Прочитано 2970 раз)
nvek
Гость
« : Июль 19, 2018, 11:50 »

В таблице rowCount() = 200 ,  а всего записей в таблице штук 100к+
при скролле меняется topRow по нему я нахожу нужные записи для отображения.
При скролее надо чтобы выделялся всегода topRow
и еще чтобы скролл бар был по размеру не на 200 элементов, а на 100к+
« Последнее редактирование: Июль 19, 2018, 11:54 от nvek » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Июль 19, 2018, 12:06 »

Мне кажется, ты что-то делаешь неправильно. Посмотри примеры по MVC в Qt.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
nvek
Гость
« Ответ #2 : Июль 19, 2018, 12:15 »

нет, как раз таки правильно, я не хочу чтобы при загрузке загружались сразу миллион записей, поэтому там реализован видимых кэш записей, который обновляется так как надо.
а если применить еще фильтрацию стандартную , которая в qt, то можно вообще ахнуть от быстродействия
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Июль 19, 2018, 12:18 »

Вьюха у модели и так запрашивает только видимые ячейки. А вот сортирровка/фильтрация требует полной загрузки..
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
nvek
Гость
« Ответ #4 : Июль 19, 2018, 12:35 »

ну вот представь если через прокси будет сортировать мильон записей
Записан
nvek
Гость
« Ответ #5 : Июль 19, 2018, 12:36 »

Код:
QModelIndex firstRowIndex = m_tableView->indexAt(QPoint(m_tableView->viewport()->rect().x() + 5, m_tableView->viewport()->rect().y() + 5));
m_tableView->setCurrentIndex(firstRowIndex);

Код:
connect(m_tableView->verticalScrollBar(), &QScrollBar::valueChanged, this, &MainForm::toprowscrollselect);
как то так
Записан
nvek
Гость
« Ответ #6 : Июль 19, 2018, 12:38 »

а как теперь подогнать размер скроллбара под кол-во записей всего? вернее не размер, а скорость прокрутки
« Последнее редактирование: Июль 19, 2018, 12:53 от nvek » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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