Qt Creator 模块学习 —— 事件系统(事件过滤器)

tech2024-12-08  5

Qt Creator 模块学习 —— 事件系统(事件过滤器)

对于事件过滤来说event()函数也可以进行但是一次只过滤一个,因此Qt是由一个事件过滤器的,可以一次过滤多个控件。 直接看例子:

bool Widget::eventFilter(QObject *obj,QEvent *ev){ QMouseEvent *env = static_cast<QMouseEvent *>(ev); if(obj==ui->label_2){ if(ev->type()==QEvent::MouseMove) { ui->label_2->setText(QString("Mouse move:(%1,%2)").arg(env->x()).arg(env->y())); return true; } if(ev->type()==QEvent::MouseButtonPress) { ui->label_2->setText(QString("Mouse press:(%1,%2)").arg(env->x()).arg(env->y())); return true; } if(ev->type()==QEvent::MouseButtonRelease) { ui->label_2->setText(QString("Mouse release:(%1,%2)").arg(env->x()).arg(env->y())); return true; } else { return QWidget::eventFilter(obj,ev); } } else { return QWidget::eventFilter(obj,ev); } }
最新回复(0)