经常会遇到定时做某事的需求,这里大家是用定时器QTimer还是用线程呢?
Qt作为一个异步结构的框架,没强烈需求的话一般没必要用线程。
如果只是普通定时需求用QTimer足够了,除非你要做的操作比较耗时,会影响主界面响应,那么再考虑用线程。
QTimer,比如音乐歌词显示与声音同步我都是用定时器😁
(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;
}
根据参考资料和个人经验,实现定时做某事的需求可以使用定时器QTimer。线程主要用于离散运算、网络通信等较为复杂的业务场景,不太适用于简单的定时任务。具体实现过程可以参考段落0和段落2中的代码。需要注意的是,定时器的精度和稳定性与所属线程的I/O等待时间相关,所以在选择定时器周期和所属线程时需要根据实际情况进行调整和优化。