QT 定时器的使用方法
在界面程序中很容易使用到,定时刷新或者更新什么东西,此时应该使用定时器的功能,定时器是在指定时间触发定时器函数,来达到定时的效果
接下来介绍两种定时器的使用,废话不说直接上代码
代码结构:

dialog.h
#ifndef DIALOG_H
#define DIALOG_H #include <QDialog>
#include <QTimerEvent>
#include <QDebug>
#include <QTimer> namespace Ui {
class Dialog;
} class Dialog : public QDialog
{
Q_OBJECT public:
explicit Dialog(QWidget *parent = nullptr);
~Dialog(); enum timerIndex //枚举从 0 开始
{
timer1,
timer2,
timer3
}; private:
Ui::Dialog *ui; QTimer *update_time; int id1,id2,id3;
void timerEvent(QTimerEvent *event);
private slots:
void time_update(); }; #endif // DIALOG_H
dialog.cpp
#include "dialog.h"
#include "ui_dialog.h" Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
id1 = startTimer();
id2 = startTimer();
id3 = startTimer();
update_time = new QTimer();
connect(update_time,SIGNAL(timeout()),this,SLOT(time_update()));
update_time->start(); //1秒钟后启动 }
void Dialog::timerEvent(QTimerEvent *event)
{
qDebug() << event->timerId() << endl;
switch (event->timerId()-)
{
case timer1 :
qDebug() << "timer1" << endl;
break;
case timer2 :
qDebug() << "timer2" << endl;
break;
case timer3 :
qDebug() << "timer3" << endl;
break;
default:
qDebug() << "no !!"<<endl;
break;
}
}
void Dialog::time_update()
{
qDebug() <<"update"<< endl;
} Dialog::~Dialog()
{
delete ui;
}
main.cpp
#include "dialog.h"
#include <QApplication> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Dialog w;
w.show(); return a.exec();
}
两种定时器使用方法已经介绍,可以根据自己的实际情况进行选择使用,个人感觉推荐使用获取定时器id 的那种方法,比较方便
工程代码在此链接需要自行下载
链接:https://pan.baidu.com/s/1iM3IgRzfEoOD21ek1L_GVQ
提取码:hcqy
QT 定时器的使用方法的更多相关文章
- QT定时器的两种应用(QObject就有timerEvent事件,一种什么样的居心呢?)
QT中定时器的使用方法(1)重载timerEvent(QTimerEvent *)函数,然后再在类的构造函数中设置时间间隔 startTimer(50);//单位为毫秒(2)在类的构造函数中设定如 ...
- 解析Qt中QThread使用方法
本文讲述的是在Qt中QThread使用方法,QThread似乎是很难的一个东西,特别是信号和槽,有非常多的人(尽管使用者本人往往不知道)在用不恰当(甚至错误)的方式在使用QThread,随便用goog ...
- Fedora安装qt总结四种方法
在fedora上安装qt有四种方法,本人由于初次接触fedora,所以还是耐心的把三个方法都测试了一遍. 1. 下载源码,手动编译,选择路径安装,请参考<fedora15下搭建QT开发环境及编 ...
- Qt中事件处理的方法(三种处理方法,四种覆盖event函数,notify函数,event过滤,事件处理器。然后继续传递给父窗口。可观察QWidget::event的源码,它是虚拟保护函数,可改写)
一.Qt中事件处理的方式 1.事件处理模式一 首先是事件源产生事件,最后是事件处理器对这些事件进行处理.然而也许大家会问, Qt中有这么多类的事件,我们怎么样比较简便的处理每个事件呢?设想,如果是 ...
- 无法启动 Maya 集成的 qt designer 的解决方法和原因 以及 中英文切换
无法启动 Maya 集成的 qt designer 的解决方法和原因 以及 中英文切换 前言: Maya 集成了 PySide,同时集成了qt designer,在 Maya 的安装目录下的 bin ...
- Qt程序打包发布方法(使用官方提供的windeployqt工具)
Qt程序打包发布方法(使用官方提供的windeployqt工具) 转自:http://tieba.baidu.com/p/3730103947?qq-pf-to=pcqq.group Qt 官方开发环 ...
- Javascript中定时器的使用方法
Javascript中定时器的使用方法 1.间隔定时器(每隔一段时间执行一次代码) 格式:setInterval(函数,时间) //时间单位是毫秒,每隔设置的时间执行函数里的内容一遍(一直执行) // ...
- QT中定时器的使用方法
前言:因为QT中用死循环会开销很多内存容易崩溃,这时候使用定时器可以很好解决这个问题. 使用定时器需要用到头文件:include<QTimer> (1)定义定时器 QTimer *upda ...
- QT基础:QT 定时器学习
定时器在编程中经常要用到,有必要学习一下,记记笔记! Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类. 1.QObject中的定时器的使用,需要用 ...
随机推荐
- js面向对象写法及栈的实现
function Stack() { this.dataStore = []; this.top = 0; //指向栈顶的位置 this.push = push; this.pop = pop; th ...
- 无缝轮播 css3
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ubuntu18.04 server配置静态ip,新的网络工具netplan的使用方法【转:http://forum.ubuntu.org.cn/viewtopic.php?t=487463】
最新发布的ubuntu18.04 server,启用了新的网络工具netplan,对于命令行配置网络参数跟之前的版本有比较大的差别,现在介绍如下:1.其网络配置文件是放在/etc/netplan/50 ...
- 【笔记】Docker部署Nginx,并修改配置文件
先来一个删除命令:) root@fudonghai:~# rm -rf /usr/docker/nginx/{conf.d,html,log} root@fudonghai:~# rm -r /usr ...
- GraphQL学习之原理篇
前言 在上一篇文章基础篇中,我们介绍了GraphQL的语法以及类型系统,算是对GraphQL有个基本的认识.在这一篇中,我们将会介绍GraphQL的实现原理.说到原理,我们就不得不依托于GraphQL ...
- 开始学习Docker啦--容器理论知识(一)
目录 一.容器核心技术 1.容器规范 2.容器 runtime 3.容器管理工具 4.容器定义工具 5.Registry 6.容器 OS 二.说说容器 1.什么是容器 Containers vs. v ...
- 游戏开发中伪随机正态分布JavaScript
在游戏开发中经常遇到随机奖励的情况,一般会采取先生成数组,再一个一个取的方式发随机奖励. 下面是js测试正态分布代码: <!DOCTYPE html> <html lang=&quo ...
- 静态路由协议和动态路由协议(rip协议和ospf协议)
一.静态路由协议 1.拓扑图 2.分别是设置各个路由器的ip地址 以R1为例 R1> R1>en //进入全局配置模式 R1#conf t //进入端口 int g0/0 //配置ip地址 ...
- easyui datagrid 实现单选并能取消单选
var intjavadillcheck=0; var rowjavadillselect=null; function ghm_getPageListCallback(result){ if(res ...
- cocos creator 实现打字机的效果
作为一个萌新,我只想说我是没有感情的粘贴工具! let richText = this.viewNode.getChildByName('richText').getComponent(cc.Rich ...