qt中定时做某事,用定时器好还是线程好?

经常会遇到定时做某事的需求,这里大家是用定时器QTimer还是用线程呢?

Qt作为一个异步结构的框架,没强烈需求的话一般没必要用线程。
如果只是普通定时需求用QTimer足够了,除非你要做的操作比较耗时,会影响主界面响应,那么再考虑用线程。

QTimer,比如音乐歌词显示与声音同步我都是用定时器😁

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7603605
  • 你也可以参考下这篇文章:【定时器 】 Qt使用定时器 QTimer
  • 你还可以看下qt参考手册中的 qt QTimeEdit
  • 除此之外, 这篇博客: 第4篇 基础(四)解决Qt部件QDateTimeEdit动态获取用户输入和日期转换成毫秒等中的 3、实现过程 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • (1)建立工程,在ui界面上,设置时间显示格式如下:

     (2)转到槽函数

     发现多出一个函数实现:

    void helloworld::on_dateTimeEdit_editingFinished()
    {
        
    }
    

    (3)动态输入获取实现

    void helloworld::on_dateTimeEdit_editingFinished()
    {
        QDateTime timeTmp = ui->dateTimeEdit->dateTime();
        qDebug()<<timeTmp;
    
        qint64 time = ui->dateTimeEdit->dateTime().toMSecsSinceEpoch();
        qDebug()<<time;
    }
  • 您还可以看一下 朱中浪(上嵌)老师的QT入门项目精讲课程中的 QTime类的使用小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    根据参考资料和个人经验,实现定时做某事的需求可以使用定时器QTimer。线程主要用于离散运算、网络通信等较为复杂的业务场景,不太适用于简单的定时任务。具体实现过程可以参考段落0和段落2中的代码。需要注意的是,定时器的精度和稳定性与所属线程的I/O等待时间相关,所以在选择定时器周期和所属线程时需要根据实际情况进行调整和优化。