gpt4 book ai didi

c++ - Qt、小部件刷新和 ui 交互性

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:52 24 4
gpt4 key购买 nike

我是 Qt 的新手,我发现学习它非常有益。我正在尝试将一些现有的 C++ 代码与新的 Qt GUI 合并。基本上,想法是让从 .avi 文件中提取的图像在后端进行处理,然后显示在屏幕上的 QLabel 中。我已经设法获得以下代码来正确显示帧:

while (frame = cvQueryFrame(capture))
{
// Some processing code...

QImage qImageFrame((uchar*) frame->imageData, frame->width, frame->height, frame->widthStep, QImage::Format_RGB888);
qImageFrame = qImageFrame.rgbSwapped();
QPixmap qFrame;

qFrame.convertFromImage(qImageFrame);
label->setPixmap(qFrame);
label->repaint();

cvWaitKey(10);
}

但是,现在这显然意味着 UI 将停止响应用户输入,直到显示电影中的所有帧。这样的事情是怎么做到的?

注意:我正在使用 openCV 库执行处理,它需要特定格式的图像。例如,我认为我不能做的一件事是直接在 Qt 域中使用 .avi 文件。

最佳答案

我不同意 Tamás 的建议,即他的答案是“最简单”的解决方案。

解决您问题的最快、侵入性最小的方法是将 qApp->processEvents(); 添加到您的循环中。我会把它放在 label->repaint(); 之后,看看会发生什么。

关于c++ - Qt、小部件刷新和 ui 交互性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6241660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com