将大(2M)图像加载到listWidget中的速度很慢

时间:2010-08-19 12:52:25

标签: image qt performance

我有一个简单的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 :(得分:0)

最快的解决方案是预先生成缩略图或使用已嵌入图像的缩略图。

如果这不可行,您唯一的选择可能是我们Qt multithreading。这有两个方面。首先,可以将填充列表的整个任务放入单独的线程中,以便应用程序在此过程中不会锁定。更加雄心勃勃的是,如果用户拥有多核系统,您可以考虑在单独的线程中加载和缩放每个图像。