我使用QLabel来显示一个伪视频流。由于我需要对像素进行大量计算,所以我使用QImage的bits()函数,然后将其转换为pixmap以在QLabel上显示。到目前为止,我一直在使用:
for(...)
{
computeImage(&myImage);
myLabel->setPixmap(QPixmap::fromImage(myImage));
}
然而,由于QPixmap::fromImage(...)
函数总是创建一个新的QPixmap对象,因此我尝试了以下更高效的方法:
QPixmap myPixmap;
for(...)
{
computeImage(&myImage);
bool b = myPixmap.convertFromImage(myImage);
myLabel->setPixmap(myPixmap);
}
在第一次显示时它可以正常工作,但之后就不会刷新了。"b"变量始终为true,因此转换成功。我甚至尝试过repaint()
或update()
标签,但没有效果。标签仍然永远显示第一张图片。