最近,我正在开发一个帧抓取器应用程序。为了使用垂直和水平滚动条显示摄像机抓取的图像,我使用QScollArea和QLabel。代码如下:
https://gist.github.com/tianshilei1992/775234959c6bdbdd635b
如果代码仅静态显示图像,则代码可以正常工作。只要收到数据,抓取器就会调用回调函数。也许是由于帧速率太高的原因,高达400 fps,如果我在抓取器工作时拖动滚动条,应用程序将崩溃。我想这是因为当我拖动滚动条时,应用程序将重新绘制图像,但由于回调函数太快,应用程序发现它想要重新绘制的图像已被新图像替换,因此它崩溃了。可以在https://github.com/tianshilei1992/CameraGrabber/blob/master/mainwindow.cpp第346到364行注册异步服务找到该项目的代码。回调函数来自第508行到第515行。
这个问题有什么解决方案吗?
答案 0 :(得分:0)
问题解决了。我刚刚定义了一个新的信号和插槽功能来进行刷新,在回调函数中发出REFRESHING。完成!