linux+qt+定时精度,Qt QTimer测试定时精度

调试信息输出窗口可以查看超时误差

dialog.h文件

#ifndef DIALOG_H

#define DIALOG_H

#include

#include

namespace Ui {

class Dialog;

}

class QTimer;

class Dialog : public QDialog

{

Q_OBJECT

public:

explicit Dialog(QWidget *parent = 0);

~Dialog();

public slots:

void slotOneSec();

private:

Ui::Dialog *ui;

QDateTime m_time;

QTimer *m_oneSecTimer;

int num;

};

#endif // DIALOG_H

dialog.cpp文件

#include "dialog.h"

#include "ui_dialog.h"

#include

#include

Dialog::Dialog(QWidget *parent) :

QDialog(parent),

ui(new Ui::Dialog)

{

ui->setupUi(this);

num = 0;

m_oneSecTimer = new QTimer();

connect(m_oneSecTimer, SIGNAL(timeout()), this, SLOT(slotOneSec()));

m_time = QDateTime::currentDateTime();

m_oneSecTimer->start(1000);

ui->myTime->setText(m_time.toString("hh:mm:ss"));

ui->computerTime->setText(QDateTime::currentDateTime().toString("hh:mm:ss"));

}

Dialog::~Dialog()

{

delete m_oneSecTimer;

delete ui;

}

void Dialog::slotOneSec()

{

m_time = m_time.addSecs(1);

ui->myTime->setText(m_time.toString("hh:mm:ss"));

ui->computerTime->setText(QDateTime::currentDateTime().toString("hh:mm:ss"));

//如果两次定时间隔大于10秒,次数就会+1

qDebug()<

if(abs(m_time.toMSecsSinceEpoch() - QDateTime::currentDateTime().toMSecsSinceEpoch()) > 10000)

{

num++;

}

ui->exception->setText(QString::number(num));

//校准事件

m_time = QDateTime::currentDateTime();

}

效果图

07dd3cc4597f58d35db54d1a61baaacf.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初始JavaScript详解【精选】

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍初始JavaScript以及部分理论知识 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主收将持续更新学习记录获&#xff0c;友友们有任何问题可以在评论区留言 目录 ⭐…

最简单的基于FFmpeg的AVDevice例子(屏幕录制)

最简单的基于FFmpeg的AVDevice例子文章列表&#xff1a;最简单的基于FFmpeg的AVDevice例子&#xff08;读取摄像头&#xff09;最简单的基于FFmpeg的AVDevice例子&#xff08;屏幕录制&#xff09;&#xfeff;&#xfeff;FFmpeg中有一个和多媒体设备交互的类库&#xff1a;Li…

linux 挂载32T文件系统,linux Centos下磁盘分区及文件系统创建与挂载(示例代码)

linux Centos下磁盘分区及文件系统创建与挂载MBR(Master Boot Record)是传统的分区机制&#xff0c;应用于绝大多数使用BIOS的PC设备。1.MBR支持32bit和64bit系统2.MBR支持分区数量有限3.MBR只支持不超过2T的硬盘&#xff0c;超过2T的硬盘只能使用2T空间(使用其他方法)1.主分区…

C语言的数组初始化

http://blog.csdn.net/sibylle/article/details/2026915 一直以为 int a[256]{0};是把a的所有元素初始化为0&#xff0c;int a[256]{1};是把a所有的元素初始化为1.调试的时查看内存发现不是那么一回事.5.2.1 数组初始化 数组可以用一个列值来初始化&#xff0c;例如 …

【OpenGL】GLSL中的函数和子程序(subroutines)

这篇文章里讲一下在GLSL如何使用函数和子程序&#xff08;subroutines&#xff09;。在GLSL中使用函数 GLSL支持函数&#xff0c;它们的语法结构和C很相似。但是调用约定会有所不同。下面&#xff0c;我们以一个普通的ADS&#xff08;ambient&#xff0c;diffuse&#xff0c;sp…

linux7 共享盘创建,使用CentOS7建立samba文件共享服务器

1、安装samba检查samba是否已经安装[rootbak1 ~]# rpm -qa | grep samba没有任何回显则表示未安装软件包 sambayum安装samba[rootbak1 ~]# yum -y install samba samba-client samba-common再次检查安装结果[rootbak1 var]# rpm -qa | grep sambasamba-common-libs-4.6.2-12.el…

批量造数据的一种方法

实现目的&#xff1a;一张表Table中有A、B、C三个字段&#xff0c;并有很多值&#xff0c;开发测试需要&#xff0c;可以执行这样的语句批量复制插入数据&#xff1a; insert into Table(A,B,C)select A,B,C from Table 转载于:https://www.cnblogs.com/tianqy/p/3965292.html

【Modern OpenGL】第一个三角形

>说明&#xff1a;跟着learnopengl的内容学习&#xff0c;不是纯翻译&#xff0c;只是自己整理记录。>强烈推荐原文&#xff0c;无论是内容还是排版。 [原文链接](http://learnopengl.com/#!Getting-started/OpenGL)本文地址&#xff1a;http://blog.csdn.net/aganlengzi…

13c语言中的文件是一种流式文件,读写时均以字符为单位.,C语言判断题部分.doc...

C语言判断题部分?第一章C语言中&#xff0c;字符数据用格式说明"%c"来输出&#xff0c;字符串数据用格式说明"%s"来输出。TC语言中&#xff0c;关键字及编译预处理命令用小写字母书写。T二元运算符均可以和赋值运算符构成复合的赋值运算符。TC语言中&…

UI Automation 简介

转载&#xff0c;源地址&#xff1a; http://blog.csdn.net/ffeiffei/article/details/6637418 MS UI Automation&#xff08;Microsoft User Interface Automation&#xff1a;UIA&#xff09;是随.net framework3.0一起发布的&#xff0c;虽然在如今这个几乎每天都有各种新名…

【OpenGL4.0】GLSL渲染语言入门与VBO、VAO使用:绘制一个三角形

以前都是用Cg的&#xff0c;现在改用GLSL&#xff0c;又要重新学&#xff0c;不过两种语言很多都是相通的。下面的例子是实现绘制一个三角形的简单程序。采用了VBO&#xff08;veretx buffer object&#xff09;、VAO&#xff08;vertex array object&#xff09;等OpenGL的一些…

catia linux下载64位,CATIA V5 CATSysDemon.exe缓冲区溢出漏洞

发布日期&#xff1a;2014-02-24更新日期&#xff1a;2014-02-25受影响系统&#xff1a;3ds catia-v5描述&#xff1a;--------------------------------------------------------------------------------CATIA是数字产品定义及生命周期管理使用的CAD、CAE、CAM应用集成软件包…

eclipse 中文乱码

eclipse 中页面中中文正常预览出现中文乱码 解决方法&#xff1a; windows->preferences->general->content types->text(展开)选择页面我的是php页面就选择phpcontent type 在窗口下面default encoding 中输入gbk 。点击update 就可以了转载于:https://www.cnblog…

【Modern OpenGL】Shader

Shaders 正如在上一篇教程中提到的&#xff0c;shader是在GPU中运行的小程序。如上一个教程中实现的最简单的vertex shader和fragment shader&#xff0c;一个shader基本上负责图形渲染流水线中的一个阶段的功能。从根本上来说&#xff0c;shader就是将输入转化成输出的操作。而…

c语言编译的手机软件,C语言编译工具

软件介绍C语言编译工具app是一款功能十分强大的手机编译、更换代码的软件工具&#xff0c;C语言编译工具app可以快速进行代码翻译、代码查找、替换等&#xff0c;它支持多种代码语言&#xff0c;欢迎下载&#xff01;C语言编译工具app内容简单方便功能强大的代码编译器&#xf…

2014.9.13模拟赛【数位和乘积】

数位和乘积(digit.cpp/c/pas) 【题目描述】 一个数字的数位和乘积为其各位数字的乘积。求所有的N位数中有多少个数的数位和乘积恰好为K。请注意&#xff0c;这里的N位数是可以有前导零的。比如01&#xff0c;02视为二位数&#xff0c;但是他们的数位和乘积都是0。 【输入格式】…

c语言中vector函数大全,vector :: empty()函数,以及C ++ STL中的示例

C vector :: empty()函数矢量::空()是一个库函数“载体”头&#xff0c;它是用来检查给定的矢量是否是一个空的载体或没有&#xff0c;它返回一个真&#xff0c;如果矢量大小为0&#xff0c;否则返回假。注意&#xff1a;要使用向量&#xff0c;请包含标头。vector :: empty()…

【Modern OpenGL】OpenGL简介

说明&#xff1a;跟着learnopengl的内容学习&#xff0c;不是纯翻译&#xff0c;只是自己整理记录。 强烈推荐原文&#xff0c;无论是内容还是排版。 原文链接 本文地址: http://blog.csdn.net/aganlengzi/article/details/50354162 OpenGL 在真正开始我们的探索之旅时&…

c语言课程设计修改订单流程图,C语言课程设计————写下流程图! 谢谢

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼printf("---You have success read data from file!!!---\n");return h; /*返回头指针*/}/*追加记录到文件*/void append(){FILE *fp; /*定义指向文件的指针*/STUDENT *info; /*新记录指针*/int s1,i;char infile[10]; /…

微信公众账户模拟登陆后的一系列操作

<?php header("content-type:text/html;charsetutf-8");/*** wx_mass* * 完成微信公众账户模拟登陆后的一系列操作* mass($content) 调用微信群发接口&#xff0c;群发文本信息* getUserList($page,$pagesize,$group) 获取用户信息* * 群发demo* * $userarray(ac…