| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt4] Ускорение работы Viewer'a |
| Автор: GRONN 10.9.2008, 18:39 |
| Друзья, есть вьюер, выводящий в рабочую область картинки (типо как thumbnail view в Windows explorer, эдакие маленькие превьюшки). Проблема такая - он очень долго работает при скроллинге - жуткие тормоза. Какие методы существуют для оптимизации работы такого viewera? Олее конкретно - для ускорения его работы при скроллинге? В PaintEvent() одно из самых "дорогостоящих" действий - изменение размера картинок, чтобы подогнать их под нужный размер - может быть из-за него тормоза? Заранее спасибо! Алексей |
| Автор: powerfox 10.9.2008, 19:28 |
| GRONN, я не помню, но кажется, по умолчанию обрабатывается вся модель. В принципе, можно сделать так, чтобы рисовалась только видимая область (точнее, создавались миниатюры только видимых картинок). |
| Автор: GRONN 10.9.2008, 19:41 | ||
| Такую оптимизацию я воткнул (на пересечение региона перерисовки с регионом отображения) уже давно. По прежнему тормоза наблюдаются, вот ищу другие доп. способы. UPD Вот как проверяется пересечение нужного элемента с областью перерисовки:
Может, itemRegion - слишком дорогая операция для таких целей? (у меня может быть порядка 500 первьюшек) |
| Автор: Любитель 10.9.2008, 19:55 |
| Используй GraphicsView - там очень обалденная оптимизация и на порядок выше удобство работы (чем просто ручная прорисовка). В качестве примера оценки производительности - стандартная демка "40000 chips". |