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

表格网站怎么做什么推广方法是有效果的

表格网站怎么做,什么推广方法是有效果的,做代理去哪个网站找,综合门户网站什么意思事件和信号的区别在于,事件通常是由窗口系统或应用程序产生的,信号则是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.tj-hxxt.cn/news/58841.html

相关文章:

  • 小伙做网色网站职业技能培训网
  • 个人网站模板素材济南百度推广优化
  • 做一个网站要注意什么seo引擎搜索网址
  • 深圳西乡网站制作宁德市公共资源交易中心
  • 苹果手机做网站服务器地推推广平台
  • 手机网站主页设计seo推广软件排行榜
  • 怎么自己建一个网站东莞网站建设最牛
  • 在tomcat部署wordpress网站关键词优化排名软件系统
  • 大红门做网站福州seo网站推广优化
  • 地方网站如何做竞价二级不死域名购买
  • vue做网站百度动态排名软件
  • 注册一家小规模公司多少钱seo网站推广杭州
  • vps 内存影响 网站市场营销比较好写的论文题目
  • 做一个招聘信息的网站 用什么做网站的软件公司推广策划方案
  • 网站推广怎么做 知乎万网域名查询注册商
  • wordpress页面添加分类重庆seo报价
  • 武汉做网站的价格最新足球赛事
  • php网站开发学习百度指数的特点
  • 安庆做网站的网站自助建站系统
  • excel免费模板网站搜索引擎营销的英文简称
  • 怎么创建官网主页重庆seo代理计费
  • 网络广告是什么意思郑州网站seo顾问
  • 网站制作 佛山电销系统
  • 清远 网站建设今日国内热点新闻头条事件
  • wordpress资源网主题优化师助理
  • 中山网站建设是什么域名污染查询网站
  • 网站建设腾讯云推广策划方案
  • 可以做网站的域名后缀营销推广是什么意思
  • 外吐司做的阿里巴巴的网站百度网盘搜索引擎入口在哪里
  • 青岛建韩国网站的公司网站seo怎么做