使用QScrollArea和QLabel显示流中的图像

时间:2015-10-05 07:23:34

标签: multithreading qt

最近,我正在开发一个帧抓取器应用程序。为了使用垂直和水平滚动条显示摄像机抓取的图像,我使用QScollArea和QLabel。代码如下:

https://gist.github.com/tianshilei1992/775234959c6bdbdd635b

如果代码仅静态显示图像,则代码可以正常工作。只要收到数据,抓取器就会调用回调函数。也许是由于帧速率太高的原因,高达400 fps,如果我在抓取器工作时拖动滚动条,应用程序将崩溃。我想这是因为当我拖动滚动条时,应用程序将重新绘制图像,但由于回调函数太快,应用程序发现它想要重新绘制的图像已被新图像替换,因此它崩溃了。可以在https://github.com/tianshilei1992/CameraGrabber/blob/master/mainwindow.cpp第346到364行注册异步服务找到该项目的代码。回调函数来自第508行到第515行。

这个问题有什么解决方案吗?

1 个答案:

答案 0 :(得分:0)

问题解决了。我刚刚定义了一个新的信号和插槽功能来进行刷新,在回调函数中发出REFRESHING。完成!

https://gist.github.com/tianshilei1992/fd76520532127deb28de