如何在android上强制立即更新Qt GUI小部件?

如何在android上强制立即更新Qt GUI小部件?,android,qt,uvc,Android,Qt,Uvc,我正在做一个使用opencv对android usb摄像头的视频流进行图像处理的项目。由于我不太擅长java,我决定在android上使用Qt和opencv android sdk。 我使用libuvc示例在android上获取视频流: uvc_开始_流(mDeviceHandle,&ctrl,cb,user_ptr,0) 我的uvc代码: uvc_start_streaming(mDeviceHandle, &ctrl, cb, user_ptr, 0); sleep(10);/* s

我正在做一个使用opencv对android usb摄像头的视频流进行图像处理的项目。由于我不太擅长java,我决定在android上使用Qt和opencv android sdk。 我使用libuvc示例在android上获取视频流:
uvc_开始_流(mDeviceHandle,&ctrl,cb,user_ptr,0)
我的uvc代码:

uvc_start_streaming(mDeviceHandle, &ctrl, cb, user_ptr, 0);
sleep(10);/* stream for 10 seconds */
uvc_stop_streaming(mDeviceHandle);
cb是uvc_start_streaming的回调函数,也是我放置opencv图像处理代码的地方,我还尝试在这个函数中更新Qt-GUI小部件。 这是我的cb函数:

void cb(uvc_frame_t *frame, void *ptr) {   
    Mat img(480,640,CV_8UC3,frame->data,1280);
    //some image process here
    w->updatePreview(img);
}
w是一个qt Main窗口,在mainwinow中有my updatePreview函数:

void MainWindow::updatePreview(Mat imgPreview)
{
    mpImageLabel->setPixmap(QPixmap::fromImage(Mat2QImage(imgPreview)));
}
我的例外是在mpImageLabel中看到usb摄像头的实时视频,但实际上只有mpImageLabel中显示的最后一帧uvc流,其他时候mpImageLabel都是空白的。我猜gui更新功能在uvc流时间内挂断。
我搜索了一段时间,尝试了qApp->processEvent方法,但根本不起作用。对此有什么想法吗?

mpImageLabel->update()
在为其设置新图像后。仍然不起作用,我不确定问题出在哪里。我是否正确使用了libuvc?或者我只需要在新的QThread中启动流式处理?