目录
- 1、新建一个widget,ui界面设计如下
- 2、widget.h中添加构过滤器造函数
- 3、在widget.cpp中添加如下代码
- 4、运行项目
1、新建一个widget,ui界面设计如下
2、widget.h中添加构过滤器造函数
bool eventFilter(QObject *watched, QEvent *event);
3、在widget.cpp中添加如下代码
添加头文件
#include <QKeyEvent>
#include <QWheelEvent>
安装过滤器:
ui->textEdit->installEventFilter(this);
ui->spinBox->installEventFilter(this);
ui->label->installEventFilter(this);
添加过滤器重构函数:
bool Widget::eventFilter(QObject *watched, QEvent *event)
{
if(watched==ui->textEdit)
{
if(event->type()==QEvent::Wheel)
{
QWheelEvent *wheelEvent = (QWheelEvent*)event;
if(wheelEvent->delta()>0)
ui->textEdit->zoomIn();
else
ui->textEdit->zoomOut();
}
}
else if(watched==ui->spinBox)
{
if(event->type()==QEvent::KeyPress)
{
QKeyEvent *keyEvent = (QKeyEvent*)event;
if(keyEvent->key()==Qt::Key_Space)
ui->spinBox->setValue(0);
}
}
else if(watched==ui->label)
{
if(event->type()==QEvent::MouseButtonPress)
{
QMouseEvent *mouseEvent = (QMouseEvent*)event;
if(mouseEvent->button()==Qt::LeftButton)
ui->textEdit->setText(tr("左击了图片!"));
else if(mouseEvent->button()==Qt::RightButton)
ui->textEdit->setText(tr("右击了图片!"));
}
}
else
return QWidget::eventFilter(watched,event);
return false;
}
4、运行项目
鼠标左键点击图片
鼠标右键点击图片
鼠标在textEdit上滑动滚轮,改变了字体大小