Qt 之定时器(QTimer)详解

Qt 之定时器(QTimer)详解

 

简述

QTimer类提供了定时器信号和单触发定时器。

它在内部使用定时器事件来提供更通用的定时器。QTimer很容易使用:创建一个QTimer,使用start()来开始并且把它的timeout()连接到适当的槽。当这段时间过去了,它将会发射timeout()信号。

注意当QTimer的父对象被销毁时,它也会被自动销毁。

 

代码测试(内有详细注释)

 

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    m_timer = new QTimer;
    //connect(m_timer,SIGNAL(timeout()),this,SLOT(slot_timeOut()));
    m_timer->start(10000);
    //****************QTimer属性***************************
    //单次触发下,定时器超时后是不活跃的;非单次触发下为活跃。
    //当然,不论什么条件,stop()后自然为不活跃
    qDebug()<<u8"①是否活跃:"<<m_timer->isActive();

    //当前时间间隔为10000毫秒 = 10秒
    qDebug()<<u8"②时间间隔:"<<m_timer->interval();

    //非单次触发会造成定时器每10秒一个间隔不断循环
    m_timer->setSingleShot(false);
    qDebug()<<u8"③是否单次触发:"<<m_timer->isSingleShot();

    qDebug()<<u8"④定时器类型(针对不同平台的精确度):"<<m_timer->timerType();
    qDebug()<<u8"⑥剩余时间";


    //QTimer为单次触发定时器提供了一个静态函数
    QTimer::singleShot(10000, this, SLOT(slot_timeOut()));
}

MainWindow::~MainWindow()
{
    delete ui;
}
//超时处理
void MainWindow::slot_timeOut()
{
    //qDebug()<<u8"是否活跃:"<<m_timer->isActive();
    qDebug()<<u8"超时!";
}

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

搓搓程序狗

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

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

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

打赏作者

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

抵扣说明:

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

余额充值