Qt每天一个小技巧之QObject::timerEvent 的简单使用

说好的计划,就要实现,今年我要把吹过的牛皮,设定的计划,统统给圆了。

依旧打开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。是不是非常简单。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值