Russian Qt Forum

Qt => Вопросы новичков => Тема начата: nvek от Июль 19, 2018, 11:50



Название: Как при скролле таблицы находить самый верхний topRow?
Отправлено: nvek от Июль 19, 2018, 11:50
В таблице rowCount() = 200 ,  а всего записей в таблице штук 100к+
при скролле меняется topRow по нему я нахожу нужные записи для отображения.
При скролее надо чтобы выделялся всегода topRow
и еще чтобы скролл бар был по размеру не на 200 элементов, а на 100к+


Название: Re: Как при скролле таблицы находить самый верхний topRow?
Отправлено: Пантер от Июль 19, 2018, 12:06
Мне кажется, ты что-то делаешь неправильно. Посмотри примеры по MVC в Qt.


Название: Re: Как при скролле таблицы находить самый верхний topRow?
Отправлено: nvek от Июль 19, 2018, 12:15
нет, как раз таки правильно, я не хочу чтобы при загрузке загружались сразу миллион записей, поэтому там реализован видимых кэш записей, который обновляется так как надо.
а если применить еще фильтрацию стандартную , которая в qt, то можно вообще ахнуть от быстродействия


Название: Re: Как при скролле таблицы находить самый верхний topRow?
Отправлено: Пантер от Июль 19, 2018, 12:18
Вьюха у модели и так запрашивает только видимые ячейки. А вот сортирровка/фильтрация требует полной загрузки..


Название: Re: Как при скролле таблицы находить самый верхний topRow?
Отправлено: nvek от Июль 19, 2018, 12:35
ну вот представь если через прокси будет сортировать мильон записей


Название: Re: Как при скролле таблицы находить самый верхний topRow?
Отправлено: nvek от Июль 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);
как то так


Название: Re: Как при скролле таблицы находить самый верхний topRow?
Отправлено: nvek от Июль 19, 2018, 12:38
а как теперь подогнать размер скроллбара под кол-во записей всего? вернее не размер, а скорость прокрутки