QObject定时器

  • 需要头文件#include <QTimerEvent>

 需要函数

int QObject::startTimer(int interval);
//启动定时器,并设置定时器间隔时间(单位ms),启动后返回该定时器ID号. void QObject::timerEvent(QTimerEvent * event);
//定时器处理函数,需要用户来重写它,如果有多个定时器,可以通过QTimerEvent::timerId()来判断定时器ID处理 void killTimer(int id);
//通过定时器ID号来杀掉某个定时器

示例代码

Widget.h:

#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QObject> class Widget : public QWidget
{
Q_OBJECT private:
virtual void timerEvent( QTimerEvent * event ); public:
explicit Widget(QWidget *parent = );
}; #endif // WIDGET_H

Widget.cpp:

#include "Widget.h"
#include <QDebug>
#include <QTimerEvent> Widget::Widget(QWidget *parent) :
QWidget(parent)
{
int TimerID = startTimer(); //设置1000ms为单位
qDebug()<<"startTimerID : "<<TimerID;
} void Widget::timerEvent(QTimerEvent * event )
{
qDebug()<<"TimerID : "<<event->timerId();
}

QTimer定时器

需要头文件#include <QTimer>  

QTimer类定时器支持单次触发和多次触发。

使用QTimer类定时器的步骤:

1. 创建一个QTimer定时器(示例)

QTimer *timer = new QTimer(this);

2. 连接timeout()信号与槽函数(示例)

 connect(timer, SIGNAL(timeout()), this, SLOT(time_handler()));

3.启动定时器,并设置间隔时间

timer->start (int msec);               //单位ms

4.停止定时器

timer->stop();

5.删除定时器

delete timer;

常用函数

void   setSingleShot(bool singleShot);
// 设置使能单次触发和多次触发,默认情况为多次触发 bool isActive();
//判断定时器是否运行 bool setInterval ( int msec );
//从新设置间隔时间

示例代码

Widget.h:

#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QObject> class Widget : public QWidget
{
Q_OBJECT QTimer *timer; private slots:
void time_handler(); public:
explicit Widget(QWidget *parent = );
}; #endif // WIDGET_H

Widget.cpp:

#include "Widget.h"
#include <QDebug>
#include <QTimer> Widget::Widget(QWidget *parent) :
QWidget(parent)
{
QTimer *timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(time_handler()));
timer->start(); //1000ms
} void Widget::time_handler()
{
qDebug()<<"Timer out"; }

最新文章

  1. 书__Oracle
  2. windows 下编译log4cxx(x64)
  3. 全局方法&amp;Number对象
  4. UVA5874 Social Holidaying 二分匹配
  5. demo07
  6. VS2010/MFC编程入门之三(VS2010应用程序工程中文件的组成结构)
  7. 【原创】30分钟入门 github
  8. 百度:在O(1)空间复杂度范围内对一个数组中前后连段有序数组进行归并排序
  9. struts详细解释拦截器
  10. uploadify.js
  11. python爬虫入门-开发环境与小例子
  12. s遇到错误不要慌,教你方法走四方
  13. [翻译] GCC 内联汇编 HOWTO
  14. Docker Clustering Tools Compared: Kubernetes vs Docker Swarm
  15. delphi 分享三个随机字符串
  16. 【xsy2506】 bipartite 并查集+线段树
  17. 浅谈Java中的==和equals
  18. svn配置教程
  19. (七十二)自己定义通知NSNotification实现消息传递
  20. HDU-2487

热门文章

  1. 华为SSH认证配置
  2. 时间字符串格式化 js
  3. 团队作业第六周--alpha阶段项目复审
  4. 阿里,百度面试90%会问的Java面试题
  5. 8.快速索引、listview
  6. HTTP 协议服务器相关概念
  7. JDK设计模式之——工厂模式
  8. 第34节:Java当中的异常
  9. Python开发网站目录扫描器
  10. Mybatis框架四:输入参数、输出参数