10.QT-定时器
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"; }
10.QT-定时器的更多相关文章
- QT定时器的两种应用(QObject就有timerEvent事件,一种什么样的居心呢?)
QT中定时器的使用方法(1)重载timerEvent(QTimerEvent *)函数,然后再在类的构造函数中设置时间间隔 startTimer(50);//单位为毫秒(2)在类的构造函数中设定如 ...
- QT基础:QT 定时器学习
定时器在编程中经常要用到,有必要学习一下,记记笔记! Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类. 1.QObject中的定时器的使用,需要用 ...
- Qt5官方demo分析集10——Qt Quick Particles Examples - Emitters
此系列的所有文章都可以在这里查看http://blog.csdn.net/cloud_castle/article/category/2123873 前段时间去听了Qt在北京的开发人员大会,感觉QML ...
- muduo网络库学习笔记(10):定时器的实现
传统的Reactor通过控制select和poll的等待时间来实现定时,而现在在Linux中有了timerfd,我们可以用和处理IO事件相同的方式来处理定时,代码的一致性更好. 一.为什么选择time ...
- QT 定时器详解
编译器 : Qt Creator 在窗口化类中实现定时器 .h #include <QTimer> private slots: ... void onTimerOut(); priv ...
- Qt 定时器Timer使用
From: http://dragoon666.blog.163.com/blog/static/107009194201092602326598/ 1.新建Gui工程,在主界面上添加一个标签labe ...
- Qt定时器
PS: 本案例使用的是Qt 4.8.4版本,不同版本代码可能会有差异. 第一步: // 重写此虚函数(继承自QObject) virtual void timerEvent(QTimerEvent* ...
- qt 定时器
重写方法 virtual void timerEvent(QTimerEvent *event); 启动定时器 timerId = startTimer(500);
- QT 定时器的使用方法
在界面程序中很容易使用到,定时刷新或者更新什么东西,此时应该使用定时器的功能,定时器是在指定时间触发定时器函数,来达到定时的效果 接下来介绍两种定时器的使用,废话不说直接上代码 代码结构: dialo ...
- 10.QT程序框架与connect
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setup ...
随机推荐
- 浅析http缓存
1.什么是缓存 将服务器上的静态资源,保存在本地,当发送web请求的时候,如果本地有“已缓存”的静态资源,则从使用本地保存的静态资源,而不是从源原服务器再次请求. 2.缓存的优点 缓存减少冗余的数据传 ...
- spring 排除指定的类或者包扫描
<!-- 排除Controller注解的扫描 --> <context:component-scan base-package="exampleBean"> ...
- h5面试题
一.匿名函数实现阶乘第一种写法: 43 > F = fun(Func, 1) -> 1;43 > (Func, N) -> N * Func(Func, N - 1) end. ...
- MySQL单表多字段模糊查询
今天工作时遇到一个功能问题:就是输入关键字搜索的字段不只一个字段,比如 我输入: 超天才 ,需要检索出 包含这个关键字的 name . company.job等多个字段.在网上查询了一会就找到了答案. ...
- tensorflow 1.0 学习:池化层(pooling)和全连接层(dense)
池化层定义在 tensorflow/python/layers/pooling.py. 有最大值池化和均值池化. 1.tf.layers.max_pooling2d max_pooling2d( in ...
- MQ(2)---JMS
JMS 一.理解JMS 1.什么是JMS? JMS即Java消息服务(Java Message Service)应用程序接口,API是一个消息服务的标准或者说是规范,允许应用程序组 ...
- java提高(6)---Serializable
Serializable--初解 一 序列化是干什么的? 我们知道,在jvm中引用数据类型存在于栈中,而new创建出的对象存在于堆中.如果电脑断电那么存在于内存中的对象就会丢失.那么有没有方法将对象保 ...
- Django-用户模块与权限系统相关
Django的用户模块与权限系统 Django的用户系统都提供哪些功能: 提供用户模块(User Model) 权限验证(默认添加已有模块的增加删除修改权限) 用户组与组权限功能 用户鉴权与登录功能 ...
- ①小姐,来桶全家桶不?(Servlet)
一.前言 小生不才,大二下半学期第二个星期,近11月博客园.星期六闲来看看经典书.重温下Serlvet. 二.温故而知新:超文本转移协议HTTP HTTP协议是通过互联网(internet)或企业内部 ...
- Chapter 4 Invitations——10
"Mr. Cullen?" the teacher called, seeking the answer to a question that I hadn't heard. “C ...