Медленное скрытие строк в QTableView |
Здравствуйте, гость ( Вход | Регистрация )
Медленное скрытие строк в QTableView |
RazrFalcon |
29.3.2012, 0:09
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
20000 раз сделать hideRow(i); и моя прога повисает на секунд 15.
Как можно ускорить скрытие строк, ну или изменить. Так как мне нужно отображать только несколько строк из модели, но вся модель находится в tableview |
|
|
Гость_Гость_* |
29.3.2012, 15:01
Сообщение
#2
|
Гости |
Скрывает быстро, рисует медленно, как вариант, кэшируй где нибудь скрываемые строки, а лучше их индексы (QPersistentIndex только лучше использовать), а затем прячь все разом, что бы отрисовка была только одна.
Реализовать это можно например с помощью прокси модели, которая отдает все строчки кроме списка тех которые ты попросил неотдавать, может быть ещё прокатит спрятать представление, спрятать все строки, показать представление, по идее для невидимого представления время на перерисовку не будет тратится при скрытии строчек. Да и кстати когда ты прячешь 20к строк, то каждый раз когда представление перерисовывается, оно пробегается по списку из 20 к элементов и сверяет рисовать ли эту строчку а так же проводит расчеты по сдвигам рисуемых строк, так что идея изначально убога и свидетельствует о кривой архитектуре. |
|
|
RazrFalcon |
29.3.2012, 15:36
Сообщение
#3
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Да и кстати когда ты прячешь 20к строк, то каждый раз когда представление перерисовывается, оно пробегается по списку из 20 к элементов и сверяет рисовать ли эту строчку а так же проводит расчеты по сдвигам рисуемых строк, так что идея изначально убога и свидетельствует о кривой архитектуре. Кто ж знал что будет 20к, сначала было всего 50 строк. Теперь то уже буду знать. |
|
|
Текстовая версия | Сейчас: 30.11.2024, 4:49 |