1
我正在尝试使用qscrollarea实现文档/图像查看器。加载多页文件时,我发现qscrollarea执行速度很慢。对于大约1.3k页的文档,完成加载需要大约半分钟的时间。如何提高大量图像的qscrollarea性能?
主要装载过程是这样的:
for (int i = 0; i < DOC_COUNT; ++i) {
QLabel *label = new QLabel();
label->setPixmap(IMAGE);
qvboxlayout_->addWidget(label);
QCoreApplication::processEvents();
}
我知道Android有系统自动膨胀的机制,回收和再利用的意见。 qt是否有这样的机制?
你的问题是提前加载所有这些图像。不要这样做。根据需要加载它们。你必须自己定制'QLabel'来实现它,或者制作你自己的小部件。 –
@KubaOber那么如何“按需加载”?你能告诉我一些线索吗? – Lion
您可以在标签第一次自行绘制之后执行加载操作:监视标签何时获取重绘事件,然后只加载并设置图像。不过,您需要先了解每个图像的大小,以便标签具有正确的尺寸但没有内容。 –