【问题标题】:QLabel don't refresh with Pixmap convertFromImageQLabel 不使用 Pixmap convertFromImage 刷新
【发布时间】:2012-06-21 00:00:06
【问题描述】:

我使用 QLabel 来显示伪视频流。由于我要对像素进行大量计算,因此我使用 QImage bits() 函数,然后将其转换为像素图以在 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”变量始终为真,因此转换效果很好。我什至尝试repaint()update() 标签,但它不起作用。标签仍然永远显示第一张图片。

【问题讨论】:

  • 你有想过这个吗?我有完全相同的问题...

标签: qt refresh qlabel


【解决方案1】:

您的每秒帧数 (fps) 是多少?您可以尝试在图像之间放置一些间隔吗?我认为 update() 也是需要的。

【讨论】:

  • 我认为你可能是对的。它可能快速循环并且不让事件循环过程。它可能需要调用 qApp.processEvents
  • 其实for循环只是为了简化代码示例。 (对不起)事实上 for 循环是一个槽函数,每秒被调用大约 7 次。所以这不是时间问题。正如我之前提到的,我也已经尝试过 uptate() 并且它没有工作。我什至放了一个 qApp.processEvents 但它仍然不起作用。还有什么想法吗?谢谢
猜你喜欢
  • 2021-11-07
  • 2015-03-30
  • 2017-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
  • 1970-01-01
相关资源
最近更新 更多