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

本文探讨了在处理耗时任务时如何避免界面出现“假死”状态的问题。通过使用多线程或在循环中调用QApplication::processEvents(),可以确保界面响应不受长时间运行任务的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

        QCoreApplication::processEvents();
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值