crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Медленное скрытие строк в 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  


Цитата(Гость @ 29.3.2012, 15:01) *
Да и кстати когда ты прячешь 20к строк, то каждый раз когда представление перерисовывается, оно пробегается по списку из 20 к элементов и сверяет рисовать ли эту строчку а так же проводит расчеты по сдвигам рисуемых строк, так что идея изначально убога и свидетельствует о кривой архитектуре.

Кто ж знал что будет 20к, сначала было всего 50 строк. Теперь то уже буду знать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- RazrFalcon   Медленное скрытие строк в QTableView   29.3.2012, 0:09
- - sidsukana   У меня даже больше строк надо было скрыть. В поток...   29.3.2012, 6:00
|- - RazrFalcon   Дык поток - это понятно. Только вроде как не совет...   29.3.2012, 8:27
|- - sidsukana   Цитата(RazrFalcon @ 29.3.2012, 10:27) Дык...   29.3.2012, 11:30
|- - RazrFalcon   У меня сама проверка занял 5мс. А вот именно hideR...   29.3.2012, 12:25
- - DOGG   Если модель SQL, то можно использовать setFilter(Q...   29.3.2012, 9:44
- - sidsukana   Standard он же тяжелый до задницы, я как-то тут уж...   29.3.2012, 12:45
- - RazrFalcon   C QAbstractTableModel так же медленно скрывает стр...   29.3.2012, 14:30
- - Гость   Скрывает быстро, рисует медленно, как вариант, кэш...   29.3.2012, 15:01
|- - RazrFalcon   Цитата(Гость @ 29.3.2012, 15:01) Да и кст...   29.3.2012, 15:36
- - sidsukana   В потоке for (quint32 i = 0; i < m_recordC...   29.3.2012, 16:32
- - RazrFalcon   Спасибо. Решил через QSortFilterProxyModel, в 2-е ...   29.3.2012, 17:27
- - sidsukana   Хотел кстати про нее еще сказать) мощная штука, че...   29.3.2012, 19:09
- - Litkevich Yuriy   иногда может пригодится запрет перерисовки виджето...   1.4.2012, 18:09


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


7 чел. читают эту тему (гостей: 7, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 30.11.2024, 4:49