一. 使用QTimeEvent类
使用 int QObject::startTimer(int interval) 函数来开启一个定时器,输入一个以ms为单位的整数作为参数,返回一个整数代表这个定时器。
id1 = startTimer(1000);
当定时器溢出时,可以在 timerEvent() 函数中获取定时器的编号来进行相关操作。
void Widget::timerEvent(QTimerEvent *event)
{
if(event->timerId() == id1)
{
qDebug() << "timer1";
}
}
二. 使用QTimer类(常用)
1. 添加一个槽
private slots:
void timerUpdate();
2. 创建一个新的定时器
QTimer *timer = new QTimer(this);
3. 关联定时器的溢出信号到槽上
connect(timer, SIGNAL(timeout()), this, SLOT(timerUpdate()));
4. 启动
timer->start(1000);
5. 停止
timer->stop();
开启一个只运行一次的定时器
//10s后,调用窗口部件的close()函数来关闭窗口
QTimer::singleShot(10000, this, SLOT(close()));