Как улучшить производительность 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 интенсивная память и очень плохие идеи.

Пример пазла "Виды предметов" - это почти то, что вам нужно.

Другие вопросы по тегам