如何用大量图像改善qscrollarea性能?

时间:2016-03-28 02:37:29

标签: qt qscrollarea

我正在尝试使用qscrollarea实现文档/图像查看器。我发现qscrollarea在加载包含很多页面的文件时执行速度很慢。对于大约1.3k页的文档,完成加载大约需要半分钟。

主要加载程序如下:

for (int i = 0; i < DOC_COUNT; ++i) {
  QLabel *label = new QLabel();
  label->setPixmap(IMAGE);
  qvboxlayout_->addWidget(label);
  QCoreApplication::processEvents();
}

我知道android有一种机制,系统会自动膨胀,回收和重用视图。 qt有这样的机制吗?

1 个答案:

答案 0 :(得分:2)

您的典型案例是您使用模型视图编程。子类QAbstractListModel并使用QListView来实现您的目标。将小部件直接添加到QScrollArea或直接在QScrollArea上绘画是内存密集型和非常糟糕的想法。

Item Views Puzzle Example几乎正是您所需要的。