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上滑动滚轮,改变了字体大小
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/74936.html