qt 定时器怎么实现每天定时

#########在qt怎么使用定时器可以实现每天定时八点执行任务?

  1. 创建QTimer对象:
    QTimer *timer = new QTimer(this);
    
  2. 设置定时器的超时时间:
    QDateTime now = QDateTime::currentDateTime();
    QDateTime eight = now.addSecs(86400); // 86400 secs = 24 hours
    timer->start(eight.toTime_t() - now.toTime_t());
    
  3. 连接定时器的timeout()信号到槽:
    c connect(timer, SIGNAL(timeout()), this, SLOT(doTask()));c
  4. 实现doTask()槽:
    void doTask()
    {
     // 执行任务
    }
    

#include <QtCore>

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);

    QTimer *timer = new QTimer(&app);

    QDateTime now = QDateTime::currentDateTime();
    QDateTime nextTime = QDateTime(now.date(), QTime(8, 0));
    if (now > nextTime)
        nextTime = nextTime.addDays(1);

    qint64 interval = now.msecsTo(nextTime);
    timer->setInterval(interval);
    timer->setSingleShot(true);
    QObject::connect(timer, &QTimer::timeout, [](){
        //任务代码
    });
    timer->start();

    return app.exec();
}