前言
QTimer 是软件定时器,其父类是 QObject。
QTimer 的主要功能是设置以毫秒为单位的定时周期,然后进行连续定时或单次定时。
启动定时器后,定时溢出时 QTimer 会发射 timeout() 信号,与 timeout() 信号关联的槽函数可以进行定时处理。
QTimer 类的主要属性:
属性 | 属性值类型 | 功能 |
---|---|---|
interval | int | 定时周期,单位是毫秒 |
singleShot | bool | 定时器是否为单次定时,true 表示单次定时 |
timeType | Qt::TimeType | 定时器精度类型 |
active | bool | 只读属性,返回 true 表示定时器正在运行 |
remainingTime | int | 只读属性,离发生定时溢出的剩余时间,单位是毫秒。若定时器未启动,属性值为 -1,若已发生定时溢出,属性值为 0 |
QTimer 发生定时溢出时,会发送 timeout() 信号,可以在与之关联的槽函数中进行定时操作
静态函数 singleShot() 用于创建和启动单次定时器,并且将定时器的 timeout() 信号与指定的槽函数关联。
使用
编写定时
QTimer* timer = new QTimer(this);
qDebug() << "定时器是否开启:" << timer->isActive();
connect(timer, &QTimer::timeout, this, &Widget::on_timeout);
timer->start(1000);
与 timeout() 信号关联的槽函数
void Widget::on_timeout()
{
static int num = 0;
qDebug() << num++;
}