ReadThread线程类实现

类设计要点

头文件优化

  • 核心:头文件中不需要包含其他类的完整定义
  • 只需要前置声明即可
  • 可以减少编译依赖

线程控制

  • 继承QThread类
  • 重写run函数
  • 使用start启动线程
  • 使用quit请求停止
  • 使用wait等待线程结束

计时器兼容性问题

Qt6废弃QTime

第一个遇到的兼容性问题:Qt6中QTime的start()和elapsed()方法已被废弃

使用QElapsedTimer

  • Qt5就建议使用QElapsedTimer替代QTime
  • QTime设计初衷是表示时间和测量时间间隔
  • 在高精度计时方面存在限制
  • QElapsedTimer提供更高精度的时间测量
  • 使用系统级别的高分辨率定时器

计时规则

  • start()时记录一次时间
  • elapsed()返回与当前时间的差值

已知问题

暂停功能bug

  • elapsed在触发暂停后仍会继续计时
  • 导致暂停后播放会快速追回当前时间
  • 实际效果等于没有暂停
  • 后续会更新优化方案