Как улучшить производительность qscrollarea с большим количеством изображений?
Я пытаюсь реализовать просмотрщик документов / изображений с помощью qscrollarea. Я обнаружил, что qscrollarea работает медленно при загрузке файлов со многими страницами. Для документа объемом около 1,3 тыс. Страниц загрузка заняла около получаса.
Основная процедура загрузки выглядит следующим образом:
for (int i = 0; i < DOC_COUNT; ++i) {
QLabel *label = new QLabel();
label->setPixmap(IMAGE);
qvboxlayout_->addWidget(label);
QCoreApplication::processEvents();
}
Я знаю, что в Android есть механизм, который автоматически раздувает, перерабатывает и повторно использует представления. Есть ли в Qt такой механизм?
1 ответ
Ваш типичный случай, когда вы используете программирование вида модели. Подкласс QAbstractListModel
и используйте QListView для достижения ваших целей. Добавление виджетов непосредственно в QScrollArea
или в этом отношении живопись прямо на QScrollArea
интенсивная память и очень плохие идеи.
Пример пазла "Виды предметов" - это почти то, что вам нужно.