Qt学习笔记——QTimer计时器的基本使用

QTimer <-- 计时器

重复触发 :

    QTimer *timer = new QTimer(this); //this 为parent类, 表示当前窗口

	connect(timer, SIGNAL(timeout()), this, SLOT()); // SLOT填入一个槽函数

	timer->start(1000); // 1000毫秒, 等于 1 秒

 以上意义为每隔 1 秒触发一次槽函数

 

单次触发 : 

QTimer::singleShot(1000, this, SLOT());  // SLOT槽填入一个槽函数

以上意义为一秒后触发,仅触发一次

 

QTimer中所常用函数

函数:

 

void setTimerType(Qt::TimerType atype); <-- 设置tiemr的时间精度类型

 

Qt::PreciseTimer <-- 精确计时器试图保持毫秒精度。

Qt::CoarseTimer <-- 粗计时器试图保持精度在预期间隔的5%以内。

Qt::VeryCoarseTimer <-- 非常粗糙的计时器只保持完全的第二精度。

 

void stop(); <-- 可以用来停止触发,可以再次调用Start再次开始触发

 

 

付:

QObject类中也有一个可进行计时的函数

int QObject::startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer);

 

需要写一个继承了QObject的类,重写 void timerEvent(QTimerEvent *event); 函数

 

使用该定时器的方法,每个Timer都有对应的timerid,所以,需要启动定时器,再通过timerid来对定时器进行绑定或者操作。

启动计时器的方法: 调用int startTimer(int interval, Qt::TimerType timeType = Qt::CoarseTimer);

第一个形参需传入一个int类型的实参,代表多少毫秒,第二个是时间精度类型,上面有描述,返回值为timerid

 

例如:

startTimer(1000); <-- 1秒调用一次,启动了第一个计时器

startTimer(2000); <-- 2秒调用一次,启动了第二个计时器

 

timerEvent函数表示计时器调用时做的事情,每完成一次计时调用一次函数

void timerEvent(QTimerEvent *event){ // event 表示当前运行的定时器


if(event->timerid == 1){

    qDebug() << "1号计时器运行一次";

}

    qDebug() << "当前TimerID 为" << event->timerid;

}

 

你可能感兴趣的:(Qt,Qt)