事件传递过程
在子组件中将事件进行处理后可能再将事件传递给父组件对象。
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)//键盘按键事件