QT控件事件过滤
Posted 小哈龙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT控件事件过滤相关的知识,希望对你有一定的参考价值。
一.前言
在使用QT开发界面项目时,经常会遇到针对某一些控件,需要做一些鼠标操作(鼠标点击在控件上,下拉框禁止鼠标滚轮等类似的一系列操作),常规手法,针对此种操作不好实现,但是这种操作尤为常用,如何处理?
二.使用事件过滤实现对某个控件特定事件的响应
1.声明需要监听过滤的的控件
控件指针->installEventFilter(this); //this为当前控件父控件
2.在控件所在UI类中重写eventFilter函数
.h中声明
//事件过滤
bool xxx::eventFilter(QObject *obj, QEvent *event)
.cpp中定义
bool xxx::eventFilter(QObject *obj, QEvent *event)
//禁用下拉列表对鼠标滚轮的响应(其它操作类似)
if(obj== ui.控件指针 && event->type() == QEvent::Wheel)
//do somethings
return true;//返回true才会取消滚轮事件的系统响应,返回false无效
以上是关于QT控件事件过滤的主要内容,如果未能解决你的问题,请参考以下文章