QT 界面图像循环更新陷入卡死状态解决方式

有时候需要处理一些跟界面无关的但非常耗时的事情,这些事情跟界面在同一个线程中,由于时间太长,导致界面无法响应,处于“假死”状态。
在这种情况下,有一种方法是使用多线程,即在子线程中处理文件保存,主线程负责界面相关。
而如果不想使用多线程,最简单的办法就是在文件保存过程中频繁调用QApplication::processEvents()。

添加:QCoreApplication::processEvents();
作用:让程序处理那些还没有处理的事件,然后再把使用权返回给调用者。
例如:

    while(true)
    {
    	·······
        //窗口显示
        ui->video_window->setPixmap(pixmap);

        QCoreApplication::processEvents();
    }

你可能感兴趣的:(QT)