游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

Qt中eventFilter()事件过滤器

  QObject有一个eventFilter()函数,用于建立事件过滤器。这个函数的签名如下:virtualboolQObject::eventFilter(QObjectwatched,QEventevent);
  事件过滤器的原理:它会检查接收到的事件。如果这个事件是我们感兴趣的类型,就进行我们自己的处理;如果不是,就继续转发。这个函数返回一个bool类型,如果你想将参数event过滤出来,比如,不想让它继续转发,就返回true,否则返回false。
  举例:这里使用eventFilter事件过滤器来捕获鼠标对ui中按键的一些操作,比如放在上面,离开uibtnrecordinstallEventFilter(this);uipushButtonplayerinstallEventFilter(this);uipushButtondeleteinstallEventFilter(this);uipushButtonallCheckinstallEventFilter(this);uitableWidget2viewport()installEventFilter(this);注册事件过滤器
  eventFilter()函数相当于创建了过滤器,然后我们需要安装这个过滤器。上面就是给每个按键以及tablewidget都装上事件过滤器
  类一定要继承于QOBJECT,并且在类的。h文件中说明这个函数booleventFilter(QObjectobj,QEventev);然后在。cpp文件实现该函数boolrecord::eventFilter(QObjectobj,QEventev){if(objuitableWidget2viewport()){if(evtype()QEvent::MouseButtonRelease){QListQTableWidgetItemitems1uitableWidget2selectedItems();if(!items1。isEmpty()){intcountitems1。count();获取该行的成员数introwuitableWidget2row(items1。at(0));获取该行的行号QStringcalllogrecordtableWidget2row:QString::number(row);logfilesave(calllog);uilineEditsetText(SchNameList。at(row));uitableWidget2hide();returntrue;}}}if(objuibtnrecord)按键的事件{if(evtype()QEvent::HoverEnter)鼠标放在按键上面{setbtnState(BTNRECORDBTN,BTNRECORDSTATEMOUSEOVER);mrecordBtnUartStategetbtnState(BTNRECORDBTN);returntrue;}elseif(evtype()QEvent::HoverLeave)鼠标离开按键{setbtnState(BTNRECORDBTN,mrecordBtnUartState);returntrue;}}returnfalse;}设置按键的状态,比如设置按键的背景voidrecord::setbtnState(EBTNRECORDNAMEbuttonName,EBTNRECORDSTATEbuttonState){switch(buttonName){caseBTNRECORDBTN:switch(buttonState){caseBTNRECORDSTATENORMAL:uibtnrecordresize(NAVIBTNNORMALW,NAVIBTNNORMALH);uibtnrecordmove(NAVIBTNNORMALX,NAVIBTNNORMALY);uibtnrecordsetStyleSheet(QPushButton{backgroundimage:url(:publicnormalPconfmenu。png);});break;caseBTNRECORDSTATEMOUSEOVER:uibtnrecordresize(NAVIBTNNORMALW,NAVIBTNNORMALH);uibtnrecordmove(NAVIBTNNORMALX,NAVIBTNNORMALY);uibtnrecordsetStyleSheet(QPushButton{backgroundimage:url(:publicmouseoverPconfmenu。png);});break;caseBTNRECORDSTATESELECTED:uibtnrecordresize(NAVIBTNSELECTEDW,NAVIBTNSELECTEDH);uibtnrecordmove(NAVIBTNSELECTEDX,NAVIBTNSELECTEDY);uibtnrecordsetStyleSheet(QPushButton{backgroundimage:url(:publicselectedPconfmenu。png);});}break;}}
  实际上任何子类都可以使用事件过滤器,不管是不是组件还是类elseif(objcallnum){if(evtype()QEvent::MouseButtonRelease){QMouseEventestaticcastQMouseEvent(ev);intmouseReleasexex();intmouseReleaseyey();intcurrrntpos0,lastpos;for(intk0;k16;k)检索呼叫列表是否有占用当前窗口{if((mouseReleasex(callnumbutton〔k〕pos()。x()))(mouseReleasex((callnumbutton〔k〕pos()。x())(callnumbutton〔k〕size()。width())))){if((mouseReleasey(callnumbutton〔k〕pos()。y()))(mouseReleasey((callnumbutton〔k〕pos()。y())(callnumbutton〔k〕size()。height())))){for(intj0;jUUInfo。size();j){if(itemlevel3〔j〕text(0)callnumbutton〔k〕funcname){uitreeWidgetsetCurrentItem(itemlevel3〔j〕);}}if(CurWindow。CurSelectWindowk)returntrue;for(ints0;s16;s){if(videopos〔s〕k)currrntposs;if(videopos〔s〕CurWindow。CurSelectWindow)lastposs;}videopos〔lastpos〕k;videopos〔currrntpos〕CurWindow。CurSelectWindow;CurSelectWindowchange(lastpos);returntrue;}}}returntrue;}}
  上面的例子就是一个子窗口的事件过滤器,在事件过滤器中获取鼠标点击的位置
  如果事件过滤器中的事件正好是我们想要捕获的就返回true,这样事件就不会转发了,如果事件不是我们想要的,一定要返回false,否则影响其他组件,比如我们这里想要tableWidget2和btnrecord的事件,如果不返回false,每次不管哪个组件进入事件,后续都没法处理,因为事件没有了转发,其他组件无法处理事件了
  eventFilter()函数是QObject的一个成员函数,因此,任意QObject都可以作为事件过滤器(问题在于,如果你没有重写eventFilter()函数,这个事件过滤器是没有任何作用的,因为默认什么都不会过滤)。已经存在的过滤器则可以通过QObject::removeEventFilter()函数移除。
  事件过滤器和被安装过滤器的组件必须在同一线程,否则,过滤器将不起作用。
  注意,如果你在事件过滤器中delete了某个接收组件,务必将函数返回值设为true。否则,Qt还是会将事件分发给这个接收组件,从而导致程序崩溃。
  只要组件注册了事件过滤器,无论任何操作都会首先进入事件过滤器,就看最后返回的true还是false,返回true不做其他处理,返回false做其他处理。
  【领QT开发教程学习资料,点击下方链接莬费领取,先码住不迷路】
  点击这里:链接

杨紫刘学义蛋糕事件撒谎翻车,张予曦被卷入其中,本人发声回应近日,杨紫刘学义的蛋糕事件被热议纷纷,根据张小寒的爆料得知,刘学义曾深夜奔赴杨紫家,两人还疑似同吃一块蛋糕,只不过对于这个爆料,杨紫和刘学义第一时间正面否认,表示没有同吃一块蛋……HokkoLife玩法一览大全材料加工去砍伐森林获取木材;或者在废弃矿井中开采和挖掘资源。把收集的原材料带回工作室,加工成设计素材。设计和着色使用工作台创建自己的家具,在简单但强大的编辑器中组合不同的……我们生活的真实世界可能是被模拟出来的?细思极恐我们生活在一个真实的世界里,很少有人怀疑世界的真实性,毕竟每天我们都能感受到各种事物真实的存在,太阳光,繁华的城市,天上的星辰,美丽的月亮,路上的行人,行驶的汽车。。。。。。……国内油价实现二连跌,陕西92号95号汽油在全国处于较低水平随着昨晚油价下调之后,国内油价已经实现年内二连跌,全国各地汽、柴油零售限价纷纷下降,意味着今年以来成品油价呈现十涨三跌零搁浅的格局,各省市区92号、95号汽油价格发生新变化,总……随杨紫穿越北京中轴线俯瞰一场城市变迁史诗十年,是时间的跨度,人生的刻度,也是衡量家乡变化的尺度。大家好,我是杨紫,北京是我的家乡,今天我将和大家聊聊在过去的十年里,我的家乡发生的变化。在北京,有一条古老而神秘的……中年人的黑天鹅,永远不知道从哪个方向飞来我在头条搞创作第二期作者:洞见muye熬过去、挣过去就会开始一个重要的转折。01hr河南商丘有一位天才少年,总是轻轻松松就能考第一。高二那年他就参加了高……老年人容易贫血,该如何补血?饮食是关键,保障健康,与长寿有缘人老了,身体也会跟着衰老,这时候身体难免会出现各种问题,比如骨质疏松、行动迟缓,记忆力衰退、高血压、高血脂、高血糖等等,不仅如此,老年人也容易伴随贫血这类情况,对身体健康是不利……英雄联盟手游2。5版本T0射手英雄评比射手位置的评测注定会引起很多争议,我就是评比寒冰刮痧都有绝活哥反对,女警出来解决了我的困扰,短短几天就成了AD位置质检员,由于这个关系,奖励女警第一个评比。一、射手质检员……热血传奇玩家眼中的猫和老鼠经典动画片《猫和老鼠》对于大家来说都不会陌生,咱们小时候大多数都看过,而且自己的孩子们应该也都看过。在动画片中老鼠的名字叫做杰瑞,猫的名字叫做汤姆,而经常被整蛊的是可怜的汤姆,……刘国梁当选国际乒联副主席,从新班子合影,可以看出国乒的地位11月25日,在国际乒联的换届选举中,瑞典人佩特拉。索林正式当选为国际乒联主席。至此,所有的程序走完,索林正式成为国际乒联第一位女掌门人。索林的就职演说其实跟刘国梁……一直睡不好又变胖超崩溃?五种食物助睡眠失眠很痛苦。睡眠对健康真的很重要,长期睡眠不足或睡眠品质不好,容易增加患高血压,心血管病,糖尿病,忧郁和肥胖的风险,也容易使人易怒烦躁,影响人际关系,平常如果也有想睡睡不……不愿向中国示弱,美财长拉拢亚太盟友,力避过度依赖中国稀土等商美国在国内疯涨的通货膨胀下,不得不向中国服软,释放出关税豁免的信号。美国政府恼火地发现,贸易战没给中国造成更大成本,甚至自2018年关税生效,美国方面承担了近9200亿元人民币……
欧美股市2022大盘点能源股成大赢家,科技地产拖后腿2022年是全球市场发生巨变的一年。在高通胀、欧美央行数十年来最鹰派加息、俄乌冲突和随之产生的能源危机、全球经济衰退可能性骤增等不确定和可怕的背景下,一年前的股市宠儿顷刻转为输……紧致提拉的护肤品哪款比较好?郑明明御龄系列测评人体的皮肤中有80的含量是胶原蛋白,而一般在年龄达到25岁以后,人体会进入胶原蛋白的高峰期,皮肤逐渐失去弹性,出现氧化、凹陷等症状,从而皮肤会变得松弛,各种细纹也显现出来了,到……会觅食的太空火球蜡烛的火焰什么样,地球人都知道,但是烛焰到了太空什么样?一般人都没见过,但我们可以猜到,太空的烛焰是球形的,这已经被宇航员们证实了。太空的烛焰不但是球形的,而且闪耀着悠悠的蓝光……国乒中机遇最好,前途一片光明的希望之星是谁呢?闲来无事不从容,睡觉东窗日已红。万物静观皆自得,四时佳兴与人同。道通天地有形外,思入风云变幻中。富贵不淫贫贱乐,男儿夺冠是豪雄。中国乒乓球高手如云,现役……幸福到万家何幸运或许到死都不知,万传家挑上她的真相赵丽颖主演的《幸福到万家》开播后收到了广大网友的关注,已经连续2次拿下全国收视冠军,同时占据猫眼电视剧热度第一的宝座。剧中赵丽颖、刘威、唐曾等演员都展现了不俗的表演,更是……知行集工具库一个免费实用的在线工具知行集工具库是一个免费提供各种网络在线工具,实用软件,素材资源的网站,致力于帮助更多的人学会运用互联网工具或科学方法,不断提高获取信息的能力,让工作学习生活更高效。这里有……微信铃声怎么设置别的铃声首先,打开微信应用程序,点击右上角的我,进入个人中心页面。在下拉菜单中选择设置,然后再点击新消息提醒。接下来,我们需要找到铃声选项,打开后可以看到微信默认的铃声列表。如果……极米发布全新产品极米H5,旗舰投影仪该如何选?前几天,极米召开了新品发布会,这次发布会极米发布了多款产品,其中极米H5是最吸引我的。极米H5发布主打的是亮度和色彩,售价为6299元。作为极米的新旗舰机,极米H5的配置十分抢……下载原版纯净Windows系统,原来只需一个小设置!简单快速电脑安装系统,准备工作中就包含下载Windows镜像文件,关于这点很多小伙伴是不清晰的,于是就上了各种捆绑网站的陷阱。想要下载原版纯净的Windows系统,其实并不难,详……在遥远的土星,有一颗卫星和地球一样拥有大海泰坦土卫六它位于太阳系中遥远而又寒冷的地带。经过木星,围绕冰封的环状行星土星运动。卡西尼号探测器正在飞往土星,它就是泰坦土卫六。卡西尼号探测器土卫……易方达副总经理陈皓投资要做好,就要尽量放弃运气的部分,现在是作者艾皛编辑袁畅在易方达内部猛将如云的投资团队里,陈皓是近年业绩最出挑的顶流。他是副总裁,投资一部总经理、权益投决会委员,属于一个投资风格的领军人物。他的业绩……奥运冠军张继科如果不被父亲拆散,或许刘诗雯是他最好的选择父母爱子,则为之计深远,父母总是想把自己力所能及的一切好的东西都送给孩子,这份爱崇高而神圣。但是凡事都应该遵循适度原则,就像是糖一样,少许可以调味,但是多了就会引起不适。……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网