Qt界面假死原因

创建一个播放器类,继承QLabel,在播放器类中起一个线程用ffmpeg取流解码,将解码后的图像保存到队列,在gui线程中调用update()刷新显示。

当ffmpeg打开视频流失败后调用update()将qlabel刷新为黑色,有一定概率会使得qlabel界面假死,此时切换到其它界面再返回到当前界面,qlabel恢复显示。

禁用取流解码线程中调用的update()后,则不会再出现假死的现象。

chatgpt回答

这是因为 Qt 的 GUI 库不是线程安全的,所有的 GUI 操作都必须在主线程中执行。

如果你尝试在不同的线程中调用 update(),可能会导致不可预知的行为和崩溃。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 05:52:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 05:52:05       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 05:52:05       58 阅读
  4. Python语言-面向对象

    2024-07-18 05:52:05       69 阅读

热门阅读

  1. Tensor列表索引本质

    2024-07-18 05:52:05       19 阅读
  2. 社会科学战线

    2024-07-18 05:52:05       22 阅读
  3. 资源管理大师:如何在Gradle中配置资源目录

    2024-07-18 05:52:05       24 阅读
  4. derivate_gauss 将图像与高斯函数的导数卷积

    2024-07-18 05:52:05       21 阅读
  5. 掌握Xcode Storyboard:iOS UI设计的可视化之旅

    2024-07-18 05:52:05       21 阅读
  6. Anylogic中Excel 文件(Excel file)的使用

    2024-07-18 05:52:05       16 阅读
  7. uniapp动态计算并设置元素高度

    2024-07-18 05:52:05       21 阅读
  8. uniapp 解决scroll-view组件 refresher-triggered刷新无效

    2024-07-18 05:52:05       19 阅读
  9. AWS ECS 服务创建 CloudWatch 告警

    2024-07-18 05:52:05       18 阅读
  10. 基于 Vue 3 和 Element Plus 构建图书管理系统

    2024-07-18 05:52:05       24 阅读