我正在编写一个图像查看器,我希望在显示当前图像后预加载下一个图像。
现在的问题是:当我显示图像时(例如,通过将QPixmap
应用于QLabel
)并在同一个Qt方法调用中加载下一个图像(例如,在同一个函数中) )预加载后将显示图像。所以我还有时间差距..
我可以切换到线程解决方案,但这会引入更多问题。
所以我现在的问题是:我可以强制Qt到update()
/ redraw()
当前调用堆栈中的UI,还是我必须找到另一种方法来预加载#34; metacall"
答案 0 :(得分:1)
我会尝试以下列方式解决问题(不处理线程):
void setCurrentImage()
{
[..]
label->setPixmap(pixmap);
QTimer::singleShot(0, this, SLOT(preloadNextImage()));
[..]
}
// A slot.
void preloadNextImage()
{
// Do preload.
}