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
您可以在標籤第一次自行繪製之後執行加載操作:監視標籤何時獲取重繪事件,然後只加載並設置圖像。不過,您需要先了解每個圖像的大小,以便標籤具有正確的尺寸但沒有內容。 –