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

QT:event事件分发器,事件过滤器(了解)

Event事件分发器

用于事件的分发
可以用事件分发器做拦截,从而不进入到后面的虚函数中,但是不建议
bool event(QEvent *e);
返回值 如果是true 代表用户处理这个事件,不向下进行分发
e->type()==中可选择进行拦截的类型
//事件分发器的event事件bool event(QEvent *e);
bool MainWindow::event(QEvent *e)
{//如果是鼠标按下,在event事件中分发中做拦截操作if(e->type() == QEvent::MouseButtonPress){QMouseEvent *ev = static_cast<QMouseEvent *>(e);QString str = QString ("事件分发函数中,鼠标按下 x= %1 y= %2").arg(ev->x()).arg(ev->y());qDebug()<<str;return true;}//其他事件交给父类处理return QWidget::event(e);
}

事件过滤器:

通过事件过滤器,可以在程序分发到event事件之前再做一次高级拦截
使用:给控件安装事件过滤器;重写eventfilter事件
//事件过滤器的eventFilter事件bool eventFilter(QObject *o, QEvent *e);
bool MainWindow::eventFilter(QObject *o, QEvent *e)
{if(o==ui->label_2){if(e->type() ==QEvent::MouseButtonPress){QMouseEvent *ev = static_cast<QMouseEvent *>(e);QString str = QString ("事件过滤器中,鼠标按下 x= %1 y= %2").arg(ev->x()).arg(ev->y());qDebug()<<str;return true;}}return QWidget::eventFilter(o,e);   //其他的默认处理
}
http://www.lryc.cn/news/131910.html

相关文章:

  • 若依项目的介绍(前后端分离版本)
  • DT游乐场建模
  • Servlet+JDBC实战开发书店项目讲解第9篇:VIP等级优惠实现
  • Azure文件共享
  • idea新建web项目
  • 回归预测 | MATLAB实现BES-SVM秃鹰搜索优化算法优化支持向量机多输入单输出回归预测(多指标,多图)
  • 电商增强现实3D模型优化需要关注的4个方面
  • 【Effective Python】读书笔记-04推导与生成
  • Android内存泄漏总结和性能优化技巧
  • leetcode 125.验证回文串
  • ZooKeeper客户端使用与经典应用场景
  • 标签准备——labelIMG工具使用——自动化标注
  • 关于vant2 组件van-dropdown-item,在IOS手机上,特定条件下无法点击问题的探讨
  • 一零七一、Spring大海捞针篇
  • 请求并发控制
  • 创建密码库/创建用户帐户/更新 Ansible 库的密钥/ 配置cron作业
  • vue实现穿梭框,ctrl多选,shift多选
  • Win11中zookeeper的下载与安装
  • ubuntu22.04 找不到串口,串口ttyusb时断时续的问题(拔插以后能检测到,过会儿就检测不到了)
  • Pinia基础教程
  • 【NOIP】标题统计
  • BOXTRADE-天启量化分析平台 系统功能预览
  • 解决Kibana(OpenSearch)某些字段无法搜索问题
  • 代码随想录训练营day15|102.层序遍历 226.翻转二叉树 101.对称二叉树
  • Nginx 配置https以及wss
  • Log4net在.Net Winform项目中的使用
  • 从零到一制作扫雷游戏——C语言
  • Python 数据挖掘与机器学习教程
  • 排序小白必读:掌握插入排序的基本原理
  • html常见兼容性问题