请选择 进入手机版 | 继续访问电脑版

PyQt社区|Qt开发-Python开发-PyQt开发-Pyside开发学习!

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 154|回复: 0

Qt自定义控件的事件,使用重写事件或事件过滤器eventFilter

[复制链接]

55

主题

58

帖子

179

积分

注册会员

Rank: 2

积分
179
发表于 2021-7-20 11:37:04 | 显示全部楼层 |阅读模式
本帖最后由 QtBoy 于 2021-7-20 11:52 编辑

方法1:重写自定义控件的mousePressEvent方法。
  1. protected:
  2.     void mousePressEvent(QMouseEvent *);
复制代码
  1. //点击自定义控件
  2. void WidgetPayItem::mousePressEvent(QMouseEvent * e)
  3. {
  4.     qInfo()<<"点击自定义控件";
  5. }
复制代码
方法2:注册事件过滤器eventFilter
  1. protected:
  2.     bool eventFilter(QObject *obj, QEvent *e);
复制代码
  1. //监视对象的事件
  2. bool WidgetPay::eventFilter(QObject *obj, QEvent *e)
  3. {
  4.     if (obj == m_widgetPayItem1)
  5.     {
  6.         if (e->type() == QEvent::MouseButtonPress){
  7.             qInfo()<<"点击自定义控件1";
  8.         }
  9.     }
  10.     else if (obj == m_widgetPayItem2)
  11.     {
  12.         if (e->type() == QEvent::MouseButtonPress){
  13.             qInfo()<<"点击自定义控件2";
  14.         }
  15.     }
  16.     else if (obj == m_widgetPayItem3)
  17.     {
  18.         if (e->type() == QEvent::MouseButtonPress){
  19.             qInfo()<<"点击自定义控件3";
  20.         }
  21.     }
  22.     return QWidget::eventFilter(obj,e);
  23. }

  24.     //注册事件过滤器
  25.     m_widgetPayItem1->installEventFilter(this);
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|PyQt社区 |网站地图

GMT+8, 2021-9-23 08:34 , Processed in 0.067864 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表