Qt篇——一行代码实现简单定时器

一、多少毫秒后执行xxx操作 

//5秒后执行xxx
QTimer::singleShot(5000,[=](){
    //博主好帅!!
});

 

二、定时器循环执行,每隔多少毫秒做xxx操作

//调用
bool condition = true;
singleShotTest();


void 类::singleShotTest(){
    if(condition){  //条件控制
        QTimer::singleShot(1000,this, &类::singleShotTest);
        //xxxxxx做你的操作
    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单实现示例: ```cpp #include <QTimer> class MyClass : public QObject { Q_OBJECT public: MyClass(QObject *parent = nullptr) : QObject(parent) { // 创建两个定时器对象 timer1 = new QTimer(this); timer2 = new QTimer(this); // 为定时器设置间隔和单次触发后执行的函数 timer1->setInterval(1000); timer2->setInterval(2000); connect(timer1, &QTimer::timeout, this, &MyClass::onTimer1Timeout); connect(timer2, &QTimer::timeout, this, &MyClass::onTimer2Timeout); // 启动第一个定时器 timer1->start(); } private slots: void onTimer1Timeout() { // 停止第一个定时器 timer1->stop(); // 发出一个信号,通知第二个定时器开始计时 emit triggerTimer2(); } void onTimer2Timeout() { // 第二个定时器触发后执行代码 } signals: void triggerTimer2(); private: QTimer *timer1; QTimer *timer2; }; ``` 在这个示例中,我们创建了两个定时器对象timer1和timer2,并为它们设置了定时器间隔和定时器单次触发后执行的函数。在timer1的触发函数onTimer1Timeout()中,我们停止了第一个定时器,并发出一个信号triggerTimer2(),通知第二个定时器开始计时。在MyClass的构造函数中,我们连接了triggerTimer2()信号到timer2的start()槽函数,以便在信号发出时启动第二个定时器。最后,我们启动了第一个定时器timer1。 当第一个定时器timer1触发后,它会停止计时并发出一个信号triggerTimer2(),通知第二个定时器timer2开始计时。当第二个定时器timer2触发后,它会执行onTimer2Timeout()函数中的代码。这样,我们就实现了一个定时器完成后再执行另一个定时器的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易Yi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值