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

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

一:定时器事件类QTimerEvent

//widget.h
/...
#include <QTimerEvent>
enum timerIndex
{
timer1,
timer2,
timer3
}; //...
private:
void timerEvent(QTimerEvent *event);
private:
int id1,id2,id3; //定时器对象的ID
//widget.cpp

#include <QDebug>
//...
id1 = startTimer();//1s定时器
id2 = startTimer();//3s定时器
id3 = startTimer();//5s定时器 //...
void Widget::timerEvent(QTimerEvent *event)//这里面可以分别调用针对每个定时器的事件处理函数
{
switch(event->timerId()-) //timerId()获取定时器的编号
{
case timer1:
qDebug()<<tr("1s定时器触发") ;
break;
case timer2:
qDebug()<<tr("3s定时器触发");
break;
case timer3:
qDebug()<<tr("5s定时器触发");
break;
default:
return;
}
}

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

//widget.h

#include <QTimer>
#include <QTime>
//... private slots:
void timerUpdate();
//widget.cpp

//...
QTimer * timer = new QTimer(this); //创建一个新的定时器
connect(timer,&QTimer::timeout,this,&Widget::timerUpdate);//关联定时器的溢出信号到槽上
timer->start(); //启动并设置溢出时间1s //...
void Widget::timerUpdate()
{
QTime time = QTime::currentTime(); //获取当前时间
QString text = time.toString("hh:mm");
if((time.second()%) == )
text[] = ' ';
ui->lcdNumber->display(text);
}

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

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

三、随机数qrand  qsrand

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

    qsrand(QTime(,,).secsTo(QTime::currentTime()));//得到 两个时间之间包含的秒速
int randNum = qrand()%;//产生300以内的随机数
QString text = QString::number(randNum,);
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. Cmd find命令 和 findstr 命令

    https://blog.csdn.net/icanlove/article/details/37567591   Windows CMD中 find命令(字符串查找) https://blog.cs ...

  2. SPOJ1007 VLATTICE - Visible Lattice Points

    VLATTICE - Visible Lattice Points no tags  Consider a N*N*N lattice. One corner is at (0,0,0) and th ...

  3. ELK系列七:Elasticsearch的集群配置和监控以及在部署ELK中踩的坑

    1.基本下载安装 #按照ELK系列一博客安装启动即可,没有大坑,注意一下权限即可 chmod -R 777 ./elasticsearch #此外没有java的,注意安装下JDK,我这次部署的环境是C ...

  4. probing privatePath如何作用于ASP.NET MVC View

    当View上using一些从probing privatePath加载的程序集,运行时会提示无法找到对应程序集. <runtime> <assemblyBinding xmlns=& ...

  5. PostgreSQL索引介绍

    h1, h2, h3, h4, h5, h6, p, blockquote { margin: 5px; padding: 5; } body { font-family: "Helveti ...

  6. 如何搭建web服务器 使用Nginx搭建反向代理服务器 .

    引言:最近公司有台服务器遭受DDOS攻击,流量在70M以上,由于服务器硬件配置较高所以不需要DDOS硬件防火墙.但我们要知道,IDC机房是肯定不允许这种流量一直处于这么高的,因为没法具体知道后面陆续攻 ...

  7. 【CF860E】Arkady and a Nobody-men 长链剖分

    [CF860E]Arkady and a Nobody-men 题意:给你一棵n个点的有根树.如果b是a的祖先,定义$r(a,b)$为b的子树中深度小于等于a的深度的点的个数(包括a).定义$z(a) ...

  8. python nose测试框架全面介绍六--框架函数别名

    之前python nose测试框架全面介绍二中介绍了nose框架的基本构成,但在实际应该中我们也会到setup_function等一系列的名字,查看管网后,我们罗列下nose框架中函数的别名 1.pa ...

  9. 解决 java.lang.IllegalThreadStateException: Thread already started. 错误

    extends:http://blog.csdn.net/liuhanhan512/article/details/7575386 android开发中,对线程的操作比较悲催,start一个线程后,必 ...

  10. Guideline 2.5.1 - Performance - Software Requirements

    Guideline - Performance - Software Requirements Your app uses the "prefs:root=" non-public ...