QTimer太让人失望了,一秒触发一次事件都不准确。。

今天做项目中,我用QTimer来模拟数据生成,在另外的设备上接受。另外设备上有时1秒读不到数据,查询原因很久,终于发现是QTimer的问题。

测试代码如下 有兴趣同学可以自己试试。

t = new QTimer(this);
    t->start(1000);
    connect(t,SIGNAL(timeout()),this,SLOT(on_showtime()));
void qtdemo::on_showtime()
{
    static int pre=-1;
    QDateTime dt = QDateTime::currentDateTime();
    if(pre==-1)
    {
    }
    else if(pre==59)
    {
        if(dt.time().second()!=0)
        {
           qDebug()<<"pre="<<pre;
           qDebug()<<"now "<<dt.time().second();
        }
    }
    else
    {
        if( (pre+1)!=dt.time().second())
        {
           qDebug()<<"pre="<<pre;
           qDebug()<<"now "<<dt.time().second();
        }
    }
    pre=dt.time().second();
}

运行后显示:

说明没有1秒触发1次事件。。。

另参考:http://qtcn.org/bbs/simple/?t57669.html

时间: 2024-08-01 01:35:29

QTimer太让人失望了,一秒触发一次事件都不准确。。的相关文章

著名设计师眼中的新iPhone和Watch:让人失望

著名工业设计师.NewDealDesign 创始人加迪·阿米特(Gadi Amit)近日撰文从设计角度对苹果的三款新产品 iPhone 6.iPhone 6 Plus 和 Apple Watch 进行了点评.文章指出,三款新产品的设计都让人失望,对于两款新 iPhone 苹果突然改变了设计风格,iPhone 系列设计理念缺乏连贯性,屏幕更大也意味着用户体验会受到影响:Apple Watch 定位模糊,采用方形而非圆形设计,功能运行需要依靠手机,缺少独特的特性. 以下是文章主要内容: 工艺设计的领

GoogleVR实现一个视选的等待数秒触发的实现例子

Gvr的一个视选等待时间的例子,这里我想达到让视选等待几秒的作用,通过UGUI显示一个Load图标,类似于技能的冷缩倒计时,当计时完成的时候,才触发一定的事件,达到视选等待数秒的交互效果. using UnityEngine; using System.Collections; using UnityEngine.UI; public class WaitFor : MonoBehaviour { public static float timeDuration { get; set; } pu

树莓派与window 10组成的物联网核心:让人失望

去年春天,微软发布了自己的window系统与物联网系统的方案,该方案使用树莓派和window 10组成物联网的核心.树莓派是一个与window完全不同的运行在ARM构架下的系统.是的,或许微软决心离开桌面系统,构架一个数以十亿计的物联网平台,或者用它来填补数以万计的POS终端和ATM机留下的空白. 当window 10物联网系统第一次发布时,人们对这样一个window实时系统抱着很大的希望.能够运行真正的Windows应用程序在树莓派上可是一个杀手级的特性.在树莓派上运行Skype的视屏通话可是

从一个女生那里学到了自己的没见过的知识 ! 太打击人了 !

在做题中,常常要求读入一行字符串,而这串字符里面可能有空格.制表符等空白字符,如果直接用%s是不可以的,于是有些人就想到用gets(),但由于gets很难控制,故而一般不推荐使用,所以用%[^\n]就可以很好的解决这个问题了,^表示"非"即读入其后面的字符就结束读入. https://blog.csdn.net/qq_30007603/article/details/81164232 原文地址:https://www.cnblogs.com/IAmParasite/p/10152655

开门就护国太烦人的能接货规范

http://www.gettyimages.cn/newsr.php?thekeyword=%A1%F3%C2%BA%CE%F7%B8%B4%B7%BD%B5%D8%B7%D2%C5%B5%F5%A5%C6%AC%C4%C4%C0%EF%D3%D0%C2%F4Q%A3%BA%A3%B8%A3%B6%A3%B3%A3%B9%A3%B0%A3%B2%A3%B9%A3%B6%A3%B2%A1%EE http://www.gettyimages.cn/newsr.php?thekeyword=%A1%

额的噶额头上的人加入太多人太多人

http://www.j1.com/ask/question/890067.html http://www.j1.com/ask/question/890104.html http://www.j1.com/ask/question/890143.html http://www.j1.com/ask/question/890168.html http://www.j1.com/ask/question/890198.html http://www.j1.com/ask/question/8902

dwz loading太烦人 怎么关掉好?

$.ajax() 有个参数global (Boolean) : (默认: true) 是否触发全局 AJAX 事件.设置为 false 将不会触发全局 AJAX 事件,如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件. $.ajax({ type: "POST", url: "monitor/mtah/tah", // data: "name=John&location=Boston",   global:f

开门就护国太烦人嘚瑟的风格货即可

http://shike.gaotie.cn/zhan.asp?zhan=%A1%BE%CF%C9%CC%D2%C3%D4%D2%A9%C4%C4%C0%EF%C2%F2Q%A3%BA%A3%B8%A3%B6%A3%B3%A3%B9%A3%B0%A3%B2%A3%B9%A3%B6%A3%B2%A8y http://shike.gaotie.cn/zhan.asp?zhan=%A1%E2%CC%EC%C3%C5%C3%D4%D2%A9%C4%C4%C0%EF%C2%F2Q%A3%BA%A3%B8%

联想THINKPAD E40的快捷键怎么关闭?哪些F1 F2 F3的键我需要用到 但是每次都按FN 太烦人了

1.开机时,按F1进入BIOS,依次选择CONFIG--Keyboard/Mouse,2.在Change to "f1-f12 keys"选项中,更改设置为Legacy或者Default.? ?(其中Legacy模式表示使用热键时无需按住Fn键,直接使用即可.? ?Default模式表示使用热键时需要按住Fn键,然后再按相应的功能键.)3.按FN+F10保存退出