Qt学习之路27--事件传递过程和事件过滤器

事件传递过程

这里写图片描述
在子组件中将事件进行处理后可能再将事件传递给父组件对象。
QEvent类是所有事件处理的父类

QEvent中的关键成员函数

–void ignore();
接收者忽略当前事件,但事件可能传递给父组件
–void accept();
接收者期望处理当前事件
–bool isAccept();
判断当前事件是否被处理

示例:事件处理的顺序

先构建一个自定义的MyLineEdit类,在类里重写event()和keyPressEvent()

MyLineEdit::MyLineEdit(QWidget *parent) : QLineEdit(parent)
{
}
bool MyLineEdit::event(QEvent* e)
{
   if( e->type() == QEvent::KeyPress )
   {
       qDebug() << "MyLineEdit::event";
   }
   return QLineEdit::event(e);//调用默认事件处理函数
}
void MyLineEdit::keyPressEvent(QKeyEvent* e)//键盘按键事件
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值