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

手机app微信网站建设男女做羞羞羞的网站

手机app微信网站建设,男女做羞羞羞的网站,正版软件购买网站,衡水做淘宝网站事件和信号的区别在于,事件通常是由窗口系统或应用程序产生的,信号则是Qt定义或用户自定义的。Qt为界面组件定义的信号往往通常是对事件的封装,如QPushButton的clicked()信号可以看做对QEvent::MouseButtonRelease类事件的封装。 在使用界面组…

        事件和信号的区别在于,事件通常是由窗口系统或应用程序产生的,信号则是Qt定义或用户自定义的。Qt为界面组件定义的信号往往通常是对事件的封装,如QPushButton的clicked()信号可以看做对QEvent::MouseButtonRelease类事件的封装。

        在使用界面组件作为交互操作编程的时候,我们通常选择合适的信号,为该信号编写槽函数。但是Qt的界面组件只将少数事件进行封装成了信号,对于某些事件可能缺少对应的信号,例如QLabel的信号中就没有与双击鼠标对应的信号
        在这种情况下我们可以从QLabel继承定义一个新的标签类,通过自定义信号和事件处理,使新的标签类具有处理鼠标双击事件的信号。

        函数event()的作用

        应用程序派发给界面组件的事件首先会由其函数event()处理,如果函数event()不做任何处理,组件就会自动调用QWidget中与事件类型对应的默认事件处理函数,从QWidget派生的界面组件一般不需要重新实现函数event(),如果对某种事件进行处理,可以重新实现其对应的事件处理函数。
        QWidget类针对一些典型事件编写了事件处理函数,但是某些类型的事件没有对应的事件处理函数,例如,对于QEvent::HoverEnter和QEvent::HoverLeave类型的事件,QWidget类中就没有对应的事件处理函数,这种情况下,如果要对QEvent::HoveEnter和QEvent::HoveLeave类型的事件进行处理,就需要自定义一个类,重新实现函数event(),判断事件类型,针对QEvent::HoveEnter和QEvent::HoveLeave类型的事件进行对应的处理。

 注意,TMyLabel中的构造函数我是改变了其中参数的,因为使用创建C++类向导自动生成的TMyLabel的构造函数是没有任何参数的,这样是不对的,因为界面组件必须要有一个父容器组件

注意在构造函数中我们将TMyLabel的Qt::WA_Hover属性设置为true(默认值是false)。这样鼠标光标移入和移出才会分别产生QEvent::HoveEnter和QEvent::HoveLeave类型的事件。 

        事件过滤器

        一个界面组件如果要对事件进行处理,需要从父类继承定义一个新类,在新类里编写程序直接处理事件,或者将事件转换成信号。
        如果不想定义一个新的类,可以用事件过滤器对界面组件的事件进行处理。事件过滤器是QObject提供的一种处理事件的方法,它可以将一个对象的事件委托给另一个对象来监听并处理。

        事件过滤器工作原理

        QObject提供了一种处理事件的方法,事件过滤器。它可以将一个对象的事件委托给另一个对象来监视并处理。例如,一个窗口可以作为其他界面上的QLabel组件的事件过滤器,派发给QLabel组件的事件由窗口去处理,这样,就不需要为了处理某种事件而新定义一个标签类。
        要实现事件过滤器功能,需要完成两项操作。
        (1)被监视对象使用函数installEventFilter()将自己注册给监视对象,监视对象就是事件过滤器。
        (2)监视对象重新实现eventFilter()函数,对监视到的事件进行处理。
       installEventFilter()和eventFilter()都是QObject类定义的公有函数,函数installEventFilter()的原型定义如下:

  void QObject::installEventFilter(QObject* filterObj)
        被监视的对象调用installEventFilter(),将对象filterObj设置为自己的事件过滤器。
        函数eventFilter()的原型定义如下:

bool QObject::eventFilter(QObject* watched , QEvent* event)
        作为事件过滤器的监视对象需要重新实现eventFilter(),参数watched
是被监视的对象,event是产生的事件。这个函数有一个返回值,如果返回true,事件就不会再传播给其他对象,事件处理结束,如果返回false,事件会继续传播给事件接受者做进一步处理。

注意eventFilter()函数结尾不能直接返回true,如果返回true的话,事件过滤器拦截的事件不会继续传播给被监视对象,而在这个类的eventFilter()函数中,我们只处理了被监视对象的少数几个事件件,例如QEvent::Paint类型的事件就没有处理,程序运行时界面上根本就不显示标签的文字。

注意 QEvent::Enter和QEventLeave两个类型的事件,它们与QEvent::HoverEnter和QEvent::HoverLeave类型的事件功能相似,只是使用Hover事件时,需要将组件的mouseTracking属性设置为true,而使用QEvent::Enter和QEventLeave两个类型的事件时无需设置这个属性

http://www.yayakq.cn/news/405959/

相关文章:

  • 盐城高端网站建设做游戏陪玩网站
  • 一键生成网站的软件温岭企业网站建设公司
  • wordpress建站平台怎样做网站开发
  • 东平专业的网站制作做零售去哪个外贸网站
  • 企业营销策划 网站建设做书的网站
  • 宁夏网站开发wordpress更改网站内容
  • 网站制作如皋公司网站设计规划
  • 企业网站如何做网警备案wordpress微名片模板
  • 网站音乐播放代码旅游网站制作视频百度云
  • 备案资料网站查询小型app开发公司
  • 运城做网站哪家好jsp鲜花网站开发源代码
  • 怎样建立个人网站?如何给国外网站做seo
  • 旅游电子商务网站建设技术规范广告联盟广告点击一次多少钱
  • 做网站做软件怎么赚钱吗全国物流网站
  • 现在手机网站用什么做的好非洲做网站用哪里服务器好
  • 免费看电影的网站是什么私人网站服务器搭建
  • 网站建设外包平台直接推广和间接推广区别
  • 做播放器电影网站需要多少钱6济南哪家公司可以做网站
  • 建设部网站业绩如何录入网站开发后端有哪些
  • 用dw做的网站如何攻击织梦做的网站方法
  • 湛江网站搜索引擎推广上海h5网站开发
  • asp.net程序做的网站安全吗怎么做网站怎么引入广告挣钱
  • 北京网站优化wyhseo服装网站目标
  • 影视网站怎么做内链推广怎么做才可以赚钱
  • 网页前端模板网站廊坊网站制作潍坊公司电话
  • 建设一个网站大概多少钱网站建设介绍大全
  • 桂林阳朔2天游玩攻略百度网站自然排名优化
  • 手机建站cms怎么做网站 先简单的聊一下
  • 网站建设销售主管岗位职责网站建设维护需要作假吗
  • 网站建设网页设计做网站太原网站建设方案推广