QTimerEvent类:定时器事件。QObject的子类都可使用  int QObject::startTimer(int interval)【参数:毫秒】【返回值:定时器整型编号】来开启一个定时器。定时器溢出是,触发timerEvent()函数。

QTimer类:定时器。编程中更常用。提供更高层次的编程接口,可使用信号和槽,可设定只运行一次。帮助:Timers

一:定时器事件类QTimerEvent

  1. //widget.h
  2. /...
  3. #include <QTimerEvent>
  4. enum timerIndex
  5. {
  6. timer1,
  7. timer2,
  8. timer3
  9. };
  10.  
  11. //...
  12. private:
  13. void timerEvent(QTimerEvent *event);
  14. private:
  15. int id1,id2,id3; //定时器对象的ID
  1. //widget.cpp
  2.  
  3. #include <QDebug>
  4. //...
  5. id1 = startTimer();//1s定时器
  6. id2 = startTimer();//3s定时器
  7. id3 = startTimer();//5s定时器
  8.  
  9. //...
  10. void Widget::timerEvent(QTimerEvent *event)//这里面可以分别调用针对每个定时器的事件处理函数
  11. {
  12. switch(event->timerId()-) //timerId()获取定时器的编号
  13. {
  14. case timer1:
  15. qDebug()<<tr("1s定时器触发") ;
  16. break;
  17. case timer2:
  18. qDebug()<<tr("3s定时器触发");
  19. break;
  20. case timer3:
  21. qDebug()<<tr("5s定时器触发");
  22. break;
  23. default:
  24. return;
  25. }
  26. }

二:定时器QTimer类(实现电子表)

  1. //widget.h
  2.  
  3. #include <QTimer>
  4. #include <QTime>
  5. //...
  6.  
  7. private slots:
  8. void timerUpdate();
  1. //widget.cpp
  2.  
  3. //...
  4. QTimer * timer = new QTimer(this); //创建一个新的定时器
  5. connect(timer,&QTimer::timeout,this,&Widget::timerUpdate);//关联定时器的溢出信号到槽上
  6. timer->start(); //启动并设置溢出时间1s
  7.  
  8. //...
  9. void Widget::timerUpdate()
  10. {
  11. QTime time = QTime::currentTime(); //获取当前时间
  12. QString text = time.toString("hh:mm");
  13. if((time.second()%) == )
  14. text[] = ' ';
  15. ui->lcdNumber->display(text);
  16. }

QTimer类还有个 singleSlot()函数来开启一个只运行一次的定时器,时间溢出则触发事件

  1. QTimer::singleShot(,this,&Widget::close);//5s后窗口自动关闭

三、随机数qrand  qsrand

使用qrand()之前,一般先用qsrand()设置初值。如果不设置初值,那么程序每次运行qrand()将产生相同的一组随机数。

  1. qsrand(QTime(,,).secsTo(QTime::currentTime()));//得到 两个时间之间包含的秒速
  2. int randNum = qrand()%;//产生300以内的随机数
  3. QString text = QString::number(randNum,);
  4. ui->lcdNumber->display(text);

定时器事件QtimerEvent 随机数 qrand Qtimer定时器的更多相关文章

  1. Qt事件系统之四:定时器事件与随机数

    一.定时器事件和随机数 QTimerEvent类用来描述一个定时器事件.对于一个QObject的子类,只需要使用int QObject::startTimer ( int interval)函数来开启 ...

  2. QT_8_Qt中的事件处理_定时器事件_定时器类_事件分发器_事件过滤器_绘图事件_高级绘图事件_绘图设备_QFile 文件读写_QFileInfo文件信息

    Qt中的事件处理 1.1. 捕获QLabel中是鼠标事件 1.2. enterevent 鼠标进入 1.3. leaveevent 鼠标离开 1.4. 鼠标按下MyLabel::mousePressE ...

  3. C# 定时器事件(设置时间间隔,间歇性执行某一函数,控制台程序)

    定时器事件代码 static void Main(string[] args) { Method(); #region 定时器事件 Timer aTimer = new Timer(); aTimer ...

  4. 【转】C# 定时器事件(设置时间间隔,间歇性执行某一函数,控制台程序)

    using System.Timers;定时器事件代码 static void Main(string[] args) { Method(); #region 定时器事件 Timer aTimer = ...

  5. 【Nginx】定时器事件

    转自:烟雨江南 Nginx事件管理主要是网络事件和定时器事件.下面介绍定时器事件管理,即超时管理. 为什么进行超时管理? Nginx有必要对可能发生超时的事件 进行统一管理,并在事件超时时作出相应的处 ...

  6. Nginx事件管理之定时器事件

    1. 缓存时间 1.1 管理 Nginx 中的每个进程都会单独地管理当前时间.ngx_time_t 结构体是缓存时间变量的类型: typedef struct { /* 格林威治时间1970年1月1日 ...

  7. Camunda定时器事件示例Demo(Timer Events)

    ​Camunda定时器事件(Timer Events)是由定义的计时器触发的事件.它们可以用作启动事件.中间事件或边界事件.边界事件可以中断,也可以不中断. Camunda定时器事件包括:Timer ...

  8. STM32定时器配置(TIM1-TIM8)高级定时器+普通定时器,定时计数模式下总结

    文章结构: ——> 一.定时器基本介绍 ——> 二.普通定时器详细介绍TIM2-TIM5 ——> 三.定时器代码实例 一.定时器基本介绍  之前有用过野火的学习板上面讲解很详细,所以 ...

  9. qt 利用Qtimer 定时器实现定时消息发送

    为了实现给控制器按周期发送控制指令,利用qt中的Qtimer 实现消息的定时发送. 需要进行三步处理: 1.在mainwindow.h文件中对timerEvent进行声明 public virtual ...

随机推荐

  1. Sass预定义一些常用的样式

    一.编写sass文件时, 目录不能有中文, 如: E:\\CPC手机, 会报错exception while processing events: incompatible character enc ...

  2. Mysql语句优化

    总结总结自己犯过的错,网上说的与自己的Mysql语句优化的想法. 1.查询数据库的语句的字段,尽量做到用多少写多少. 2.建索引,确保查询速度. 3.orm框架自带的方法会损耗一部分性能,这个性能应该 ...

  3. Edge Animate使用SPRITESHEET创建动画(三)

    在Flash动画制作中,使用SpriteSheet制作动画元素是一个常见和普遍的方法.在Edge Animate中,我们也可以利用SpriteSheet来制作HTML5动画.本文将从一个示例出发,介绍 ...

  4. [转][darkbaby]任天堂传——失落的泰坦王朝(上)

    前言:   曾经一再的询问自我;是否真的完全了解任天堂这个游戏老铺的真实本质?或许从来就没有人能够了解,世间已经有太多的真相被埋没在谎言和臆测之中.作为 一个十多年游龄的老玩家,亲眼目睹了任天堂从如日 ...

  5. sklearn的快速使用

    传统的机器学习任务从开始到建模的一般流程是:获取数据 -> 数据预处理 -> 训练建模 -> 模型评估 -> 预测,分类.本文我们将依据传统机器学习的流程,看看在每一步流程中都 ...

  6. Git 使用篇二:搭建远程服务器

    一般做一个私人的项目,不希望开源的,是不会放在GitHub上的,这个时候我们需要建里一个自己的Git远程服务器,方便小组成员开发. 这里以Centos云服务器为例: 第一步 如果自己的服务器没有git ...

  7. HOJ-2662Pieces Assignment(状态压缩,动态规划)

    Pieces Assignment Source : zhouguyue Time limit : 1 sec Memory limit : 64 M Submitted : 415, Accepte ...

  8. Chainer的初步学习

    人们都说Chainer是一块非常灵活you要用的框架,今天接着项目里面的应用,初步接触一下,涨涨姿势,直接上源码吧,看着好理解.其实跟Tensorflow等其他框架都是一个套路,个人感觉更简洁了. & ...

  9. ZB api

    本文介绍ZB api Rest API (已开启) ZB为用户提供了一个简单的而又强大的API,旨在帮助用户快速高效的将ZB交易功能整合到自己应用当中. 如果在使用过程中有任何问题,请加群764113 ...

  10. Linux目录【持续更新中】

    故障排除 服务器为什么这么慢?耗尽了CPU.RAM和磁盘I/O资源 服务 ELK服务基础 基础 常用命令 curl命令 Nginx服务基础 Nginx正向代理配置 Nginx文件下载服务器 Nginx ...