Медленная загрузка больших (2М) изображений в список виджетов - PullRequest
1 голос
/ 19 августа 2010

У меня есть простой QlistWidget, где я загружаю изображения за один вызов, используя этот код:

ui.listWidgetImages->setIconSize(QSize(60, 60));
QStringList::const_iterator i = filenames.constBegin(); // QStringList that holds the images paths
while (i != filenames.constEnd()) {
  QString value = *i;
  QListWidgetItem *standardItemnew = new QListWidgetItem(value, ui.listWidgetImages);
  standardItemnew->setIcon(QIcon(value));    
  ++i;         
}

Я полагаю, что медлительность является результатом уменьшения изображения до размера 60/60, но есть ли способ ускорить процесс?

1 Ответ

0 голосов
/ 19 августа 2010

Самым быстрым решением будет предварительная генерация миниатюр или использование уже встроенных в изображение миниатюр.

Если это невозможно, то единственным вариантом для нас может быть многопоточность Qt's . У этого есть две стороны. Начать со всей задачи заполнения списка можно в отдельном потоке, чтобы приложение не блокировалось во время процесса. Более амбициозно, если у пользователей многоядерные системы, вы можете рассмотреть возможность загрузки и масштабирования каждого изображения в отдельном потоке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...