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

江苏江都建设集团有限公司网站免费网上商城网站建设

江苏江都建设集团有限公司网站,免费网上商城网站建设,优秀国内个人网站网址,iis配网站目录 1.定时器0.是什么#xff1f;1.QTimerEvent2.QTimer3.获取系统⽇期及时间 2.事件分发器1.概述2.事件分发器工作原理3.使用 3.事件过滤器0.是什么#xff1f;2.使用 1.定时器 0.是什么#xff1f; 在进⾏窗⼝程序的处理过程中#xff0c;经常要周期性的执⾏某些操作1.QTimerEvent2.QTimer3.获取系统⽇期及时间 2.事件分发器1.概述2.事件分发器工作原理3.使用 3.事件过滤器0.是什么2.使用 1.定时器 0.是什么 在进⾏窗⼝程序的处理过程中经常要周期性的执⾏某些操作或者制作⼀些动画效果使⽤定时器就可以实现定时器就是在间隔⼀定时间后去执⾏某⼀个任务Qt中的定时器分为QTimerEvent和QTimer这2个类 1.QTimerEvent QTimerEvent⽤来描述⼀个定时器事件使用 startTimer()开启⼀个定时器 参数以毫秒为单位的整数作为参数来表明设定的时间返回值一个整形的身份标识代表这个定时器 当定时器溢出时(即定时时间到达)就可以在timerEvent()中获取该定时器的编号来进⾏相关操作killTimer关闭定时器 注意如果一个程序中存在多个定时器(startTimer创建的定时器)此时每个定时器都会触发timerEvent()示例// 构造函数中 {// 开启定时器事件.// 此处 timerId 是一个定时器的身份标识.timerId this-startTimer(1000); }void Widget::timerEvent(QTimerEvent* event) {// 先判定一下这次触发是否是想要的定时器触发的.if (event-timerId() ! this-timerId) {return;}int value ui-lcdNumber-intValue();if (value 0) {// 停止定时器this-killTimer(this-timerId);return;}value - 1;ui-lcdNumber-display(value); }2.QTimer QTimer底层是QTimerEventQTimer实现⼀个定时器它提供了更⾼层次的编程接⼝ 如可以使⽤信号和槽还可以设置只运⾏⼀次的定时器 示例QTimer* timer new QTimer(this);connect(ui-btn1, QPushButton::clicked, [](){timer-start(1000); });connect(timer, QTimer::timeout, [](){static int num 1;ui-label-setText(QString::number(num)); });connect(ui-btn2, QPushButton::clicked, [](){timer-stop(); });3.获取系统⽇期及时间 在Qt中获取系统的⽇期及实时时间可以通过QTimer类和QDateTime类 QDateTime类提供了字符串格式的时间输出格式由toString()⽅法中的format参数列表决定 示例 // 构造函数中 {QTimer* timer new QTimer(this);connect(ui-btn1, QPushButton::clicked, [](){timer-start(1000);});connect(ui-btn2, QPushButton::clicked, [](){timer-stop();});connect(timer, QTimer::timeout, this, Widget::TimeUpdate); }void Widget::TimeUpdate() {QString t QDateTime::currentDateTime().toString(yyyy-MM-dd hh:mm:ss);ui-label-setText(t); }2.事件分发器 1.概述 在Qt中事件分发器(EventDispatcher)是⼀个核⼼概念⽤于处理GUI应⽤程序中的事件 属于Qt事件机制背后的一些逻辑杀伤力比较广不当使用可能对现有逻辑造成一些负面影响一般不建议使用 事件分发器负责将事件从⼀个对象传递到另⼀个对象直到事件被处理或被取消每个继承⾃QObject类或QObject类本⾝都可以在本类中重写bool event(QEvent* e)来实现相关事件的捕获和拦截 2.事件分发器工作原理 在Qt中发送的事件都是传给了QObject对象更具体点是传给了QObject对象的event() 所有的事件都会进⼊到这个函数⾥⾯ 那么处理事件就要重写这个event()函数 event()函数本⾝不会去处理事件⽽是根据事件类型(type)调⽤不同的事件处理函数 事件分发器就是⼯作在应⽤程序向下分发事件的过程中 事件分发器⽤于分发事件在此过程中事件分发器也可以做拦截操作事件分发器主要是通过bool event(QEvent* e)来实现 返回值若为ture代表拦截不向下分发 3.使用 Qt中的事件是封装在QEvent类中其所包括的事件类型 示例拦截鼠标左键单击事件 void Widget::mousePressEvent(QMouseEvent* event) {if(event-button() Qt::LeftButton){qDebug() 鼠标左键被按下;} }bool Widget::event(QEvent* ev) {if(ev-type() QEvent::MouseButtonPress){qDebug() Event中鼠标被按下;return true; // 返回true代表拦截不向下分发}// 其他事件交给父类处理(默认处理)return QWidget::event(ev); }3.事件过滤器 0.是什么 在Qt中⼀个对象可能经常要查看或拦截另外⼀个对象的事件 例如对话框想要拦截按键事件不让别的组件接收到或者修改按键的默认值等属于Qt事件机制背后的一些逻辑杀伤力比较广不当使用可能对现有逻辑造成一些负面影响一般不建议使用 Qt创建了QEvent事件对象之后会调⽤QObject的event()函数处理事件的分发可以在event()函数中实现拦截的操作 由于event()是protected的因此需要继承已有类如果组件很多就需要重写很多个event() 这当然相当⿇烦更不⽤说重写event()还得⼩⼼⼀堆问题好在Qt提供了另外⼀种机制来达到这⼀⽬的事件过滤器 事件过滤器是在应⽤程序分发到event事件分发器之前再做⼀次更⾼级的拦截 2.使用 事件过滤器的⼀般使⽤步骤 安装事件过滤器重写事件过滤器函数eventfilter() 示例{void MyLabel::mousePressEvent(QMouseEvent* event){QString str QString(鼠标按下: x %1, y %2).arg(event-x()).arg(event-y());qDebug() str.toUtf8().data();}void MyLabel::event(QEvent* ev){if(ev-type() QEvent::MouseButtonPress){QMouseEvent* event static_castQMouseEvent* e(e);QString str QString(event中鼠标按下: x %1, y %2).arg(event-x()).arg(event-y());qDebug() str.toUtf8().data();return true; // 返回true代表拦截不向下分发}// 其他事件交给父类处理(默认处理)return QWidget::event(ev);} } ---------------------------------------------------------------------- {// Widget构造函数中{// 步骤1给label安装事件过滤器 this:当前窗口安装事件过滤器ui-label-installEventFilter(this);}// 步骤2重写eventFilter事件bool Widget::eventFilter(QObject* obj, QEvent* e){if(obj ui-label) // 判断控件{if(e-type QEvent::MouseButtonPress){QMouseEvent* event static_castQMouseEvent* e(e);QString str QString(事件过滤器中鼠标按下: x %1, y %2).arg(event-x()).arg(event-y());qDebug() str.toUtf8().data();return true;}}// 其他事件交给父类处理return QWidget::event(ev);} }
http://www.hkea.cn/news/14475413/

相关文章:

  • 汽配网站建设成本wordpress吾爱
  • 泰安公司网站建设oppo手机网站建设需求分析
  • 怎么查询菠菜网站做没作弊网站怎么做 织梦
  • 什么公司做企业网站图片生成器网站
  • 建网站的工具物流网站建设摘要
  • qq登录网站怎么做做二手平台公益的网站
  • 网站页面前端基本设计中高端网站建设公司
  • 巴青网站制作望野小说
  • 网站建设要托管服务器网站安全建设需求
  • 微信公众号网站建设wordpress 搬家 换域名
  • wap网站快速开发宁波网站推广营销公司
  • 北京 公司网站 备案中 开通访问网页制作下载图片代码
  • 做论坛网站好吗网站建设价格就要用兴田德润
  • 如何做网站逻辑结构图专业网站设计制作过程
  • 在什么网站上做外贸网站制作公司多少钱
  • 做简单网站需要学什么软件自建网站模板代码
  • 宣传商务型的网站广州企业黄页大全
  • 成都高端网站建设哪家好哪里教做网站的
  • 深圳找做兼职女上班的网站苏州网站制作计划
  • 东莞网站建设方案报价一个app下载网站
  • 手机端网站开发 免费九九建筑网
  • 网站建设 重庆怎么看一个网站是不是仿站
  • 百度怎么进入官方网站有没有帮别人做网站
  • 网站项目开发流程有哪七步新闻类网站怎么建设
  • 网站内链怎么布局天津规划设计公司
  • 官方网站、门户网站是什么意思?wordpress主题汉化插件
  • 网站主机空间用哪个好贵州省城乡和建设厅网站首页
  • 免费建网站平台哪个好宁波网站建设运营
  • trs网站建设平台营销方案案例范文通用
  • 手机高端设计网站建设建设网站最重要的是什么