当前位置: 首页 > news >正文

哈尔滨小程序湖南网络优化服务

哈尔滨小程序,湖南网络优化服务,沈阳网站建设费用,网站 工作室 建设 方案qt定时器的使用一般有以下几种方式#xff1a; 1、直接使用QTimer对象#xff0c;绑定定时器的timeout信号#xff1b; 2、使用QTimer的静态方法singleshot方法#xff0c;产生一个一次性的定时事件 3、在QObject子类中#xff0c;调用startTimer方法#xff0c;产生定…qt定时器的使用一般有以下几种方式 1、直接使用QTimer对象绑定定时器的timeout信号 2、使用QTimer的静态方法singleshot方法产生一个一次性的定时事件 3、在QObject子类中调用startTimer方法产生定时器并在timerEvent方法中实现其处理 以上三种方法本质上都是继承QObject类调用QObject的startTimerkillTimer方法等实现的 QObject类中定时器相关的方法有startTimer、killTimer、timerEvent三个方法 startTimer源码如下 startTimer的实现比较简单主要是向eventDispatcher中注册定时器事件QAbstractEventDispatcher中registerTimer的实现如下 生成一个定时器的id并调用派生类的registerTimer的函数 将定时器相关信息保存在WinTimerInfo结构中并调用QEventDispatcherWin32Private类中的registerTimer方法 首先会重新计算定时的时间间隔调用calculateNextTimeout方法 如果是非常粗糙的定时方式或者定时时间超过2s且定时器类型不是精确定时则定时器的触发时间存在500ms左右的偏差 QZeroTimerEvent事件 如果定时时间间隔为0ms则会调用qt的postEvent方法向QEventDispatcherwin32对象抛一个QZeroTimerEvent事件切入到qt的事件循环中;通过上几节介绍可知通过postEvent抛出的事件最终会进入到qt_internal_proc方法中 最终会进入到q-sendPostedEvents()方法中 几经周转会进入到QEventDispatcherWin32的event方法中此处是ZeroTimerEvent事件会调用QCoreApplication::sendEvent方法向定时器事件的QObject对象发送一个QTimerEvent事件从而转入到QObject的event方法中执行并在此抛出一个QZeroTimerEvent事件 回到registerTimer方法中 PreciseTimer事件 如果定时器事件类型为精确定时会调用windows操作系统的timerSetEvent接口实现精确定时定时精度1ms其对应的回调函数qt_fast_time_proc方法如下: 其会在回调函数中向QEventDispatcherWin32对象post一个QTimerEvent事件最终进入到QEventDispatcherWin32的event函数中调用其sendTimerEvent函数其定义如下 在其方法中会调用QCoreApplication的sendEvent函数最终切入到QObject的event函数中 VeryCoarseTimer事件 精度要求不高的事件会调用windows API的setTimer函数注册一个定时器事件此事件的回调函数为nullptrqt会使用windows系统产生的WM_TIMER事件最终会被qt_internal_proc回调函数捕获到 其会直接调用QEventDispatcherWin32函数的sendTimerEvent方法其余执行流程同上 总结 1、qt定时器会产生3种类型的定时事件 QZeroTimerEvent事件、QTimerEventPreciseTimerQTimerEventVeryCoarseTimer、CoarseTimer 2、当定时间隔为0时会产生QZeroTimerEvent事件其由QCoreApplication的postEvent方法切入到qt的事件循环中几经周转在此回到QEventDispatcher类中执行 3、当定时的精度要求比较高时可以使用PreciseTimer事件类型其调用weindowsAPI的timerSetEvent接口实现高精度定时并在其回调函数中调用postEvent方法切入到qt的事件循环中处理 4、当定时精度要求不高时可以使用默认事件类型即VeryCoarseTimer事件类型其会调用windowsAPI的setTimer接口并产生WM_TIMER事件切入到qt的事件循环中 5、CoarseTimer事件类型会根据其时间间隔决定产生的是精确定时还是粗糙的定时方式。
http://www.pierceye.com/news/185849/

相关文章:

  • 学院网站建设服务宗旨实惠的网站建设产品
  • 网站改名 备案影视制作
  • 网站开发亿码酷技术网站建设选谋者
  • 智能家居网站模板怎样做网站标题优化
  • 深圳制作网站制作公司哪家好最简洁 wordpress主题
  • 重庆忠县网站建设公司推荐国内公关公司
  • 给彩票网站做代理违法吗wordpress文章与页面关联
  • 网站标题加后缀模拟ip访问网站
  • 临清网站建设费用什么是网络营销的基础
  • 街道办的网站由谁做的企业首次建设网站的策划流程
  • 优化大师免费版下载一键优化下载安装
  • 网站建设近五年出版的书籍甘肃省工程建设信息官方网站
  • 杭州网站现场备案项目营销策划方案
  • 网站打包成app软件php网站 上传
  • 行业网站建设策划方案系部网站开发计划书
  • 建设部网站投诉核查做网站一般几个人
  • 360网站推广官网网址怎样在网站做咨询医生挣钱
  • 重庆市建设银行网站一站式网站建设有哪些
  • 自学设计软件的免费网站免费ppt模板简约
  • 申请个人网站怎么申请网站类型有哪些
  • 做网站推广托管注意哪个网站做推广好
  • 大竹网站建设泗阳城乡建设局网站
  • 山东省住房和城乡建设厅服务网站做网站的注意点
  • 网站排名优化软件江西网站备案要求
  • 桐柏县建设局网站邢台建设局网站
  • 网站域名变更怎么查英国做网站的人
  • 嘉兴公司的网站设计wordpress 送女友
  • 10个免费的黑科技网站电子元器件商城网站建设
  • 动画型网站做免费推广的平台
  • 购物网站怎么创建深圳地区5g微波网站建设计划