说好的计划,就要实现,今年我要把吹过的牛皮,设定的计划,统统给圆了。
依旧打开qt的帮助文档,今天我们来看一下timerEvent 的简单使用吧。
今天我们来看要使用的函数吧。
- int startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer)
- int startTimer(std::chrono::milliseconds time, Qt::TimerType timerType = Qt::CoarseTimer)
- void killTimer(int id)
- virtual void timerEvent(QTimerEvent *event)
我们直接上代码:
#include <QObject>
#include <QCoreApplication>
#include <QDebug>
#include <QThread>
class MyObject:public QObject
{
public:
MyObject(QObject * parent = nullptr);
int getId1() const
{
return id1;
}
int getId2() const
{
return id2;
}
protected:
void timerEvent(QTimerEvent *event) override;
private:
int id1; //id1
int id2; //id2
};
MyObject::MyObject(QObject *parent):QObject(parent)
{
id1 = startTimer(500);
id2 = startTimer(1000);
}
void MyObject::timerEvent(QTimerEvent *event)
{
static int num = 0;
if(event->timerId() == id1)
{
qDebug() << "first";
num++;
if(num == 10)
{
this->killTimer(id1);
}
}
else if(event->timerId() == id2)
{
qDebug() << "second";
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
MyObject ab;
return a.exec();
}
输出结果:
我们看到可以通过id来处理不同是事件,可以通过killtimer,来关闭事件id。是不是非常简单。