QT:event事件分发器,事件过滤器(了解)

这篇具有很好参考价值的文章主要介绍了QT:event事件分发器,事件过滤器(了解)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Event事件分发器

用于事件的分发
可以用事件分发器做拦截,从而不进入到后面的虚函数中,但是不建议
bool event(QEvent *e);
返回值 如果是true 代表用户处理这个事件,不向下进行分发
e->type()==中可选择进行拦截的类型
//事件分发器的event事件
    bool event(QEvent *e);
bool MainWindow::event(QEvent *e)
{
    //如果是鼠标按下,在event事件中分发中做拦截操作
    if(e->type() == QEvent::MouseButtonPress)
    {
        QMouseEvent *ev = static_cast<QMouseEvent *>(e);
        QString str = QString ("事件分发函数中,鼠标按下 x= %1 y= %2").arg(ev->x()).arg(ev->y());
        qDebug()<<str;
        return true;
    }
    //其他事件交给父类处理
    return QWidget::event(e);
}

事件过滤器:

通过事件过滤器,可以在程序分发到event事件之前再做一次高级拦截
使用:给控件安装事件过滤器;重写eventfilter事件
//事件过滤器的eventFilter事件
    bool eventFilter(QObject *o, QEvent *e);
bool MainWindow::eventFilter(QObject *o, QEvent *e)
{
    if(o==ui->label_2)
    {
        if(e->type() ==QEvent::MouseButtonPress)
        {
            QMouseEvent *ev = static_cast<QMouseEvent *>(e);
            QString str = QString ("事件过滤器中,鼠标按下 x= %1 y= %2").arg(ev->x()).arg(ev->y());
            qDebug()<<str;
            return true;
        }
    }
    return QWidget::eventFilter(o,e);   //其他的默认处理
}

文章来源地址https://www.toymoban.com/news/detail-665203.html

到了这里,关于QT:event事件分发器,事件过滤器(了解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt的事件过滤器installEventFilter

    一、介绍 WPF中使用AddHandler来监听事件,那么QT呢?Qt的事件模型是使用一个QObject对象,来监视发送其他QObject对象的事件,在事件到达之前对其进行处理。这里要使用一个函数 Qt助手的解释如下: 在对象上安装一个事件过滤器filterObj。如下: 其中monitoredObj、filterObj都是QObje

    2024年02月12日
    浏览(44)
  • Qt 事件过滤器使用QPainter绘制温度

    Qt的 eventFilter 是一个事件过滤器,可以用来捕获和处理Qt对象的事件。事件过滤器可以被安装到一个对象上,以便在该对象上拦截和处理包含特定类型和内容的事件。下面是 eventFilter 的简单使用介绍: 创建一个类,并继承自 QObject 。这个类将作为事件过滤器的实现。 在该类

    2024年02月12日
    浏览(35)
  • Qt之事件过滤器讲解并且实现快捷键切换鼠标焦点

    现在有一个类似于下方图的ui,用户需要在输入前一行内容后,需要摁下指定案件能够跳转到下一行继续进行输入。 一种更为直接的解决方案是子类化 QLineEdit 并且重新实现鼠标事件 keyPressEvent() ,然后调用 focusNextChild() 。 首先需要创建一个子类MyLineEdit继承于QLineEdit类。然后重

    2024年02月12日
    浏览(54)
  • web3j的基础用法-6合约的监听器事件Event和过滤器EthFilter,以及NullPointed,调用失败导致的bug解决

    本篇以Uniswap为例(https://uniswap.org/) 合约地址 :0x1f9840a85d5af5bf1d1762f925bdaddc4201f984 (Uni) 监听合约Tranfer事件 调用代码 核心代码实现在这里 之前实验全量区块,导致请求多次失败,是由于个人RPC节点的请求和数据有限,为了测试出结果,从13763721L block到当前,结果毫秒级返

    2024年02月11日
    浏览(47)
  • 【VS Code 与 Qt6】运用事件过滤器批量操作子级组件

    如果某个派生自 QObject 的类重写 eventFilter 方法,那它就成了事件过滤器(Event Filter)。该方法的声明如下: watched 参数是监听事件的对象,即事件的接收者;event 参数当然就是待处理的事件了。事件过滤器(也可以翻译为“筛选器”)可在接收者之前拦截事件,处理完毕后还

    2024年02月08日
    浏览(47)
  • 音视频 ffplay简单过滤器

    视频旋转 视频反转 视频旋转和反转 音频变速播放 视频变速播放 音视频同时变速 推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家: 零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核) https://xxetb.xet.tech/s/VsFMs

    2024年02月10日
    浏览(53)
  • FFMPEG 视频类过滤器学习整理

    针对FFMPEG提供视频过滤器进行了介绍,并提供使用实例 addroi 作用 在视频帧上标记一块感兴趣的区域。 帧数据被原封不动地传递,但元数据被附加到帧,指示可能影响后续编码行为的感兴趣区域。可以通过多次应用过滤器来标记多个区域。 参数 qoffset: 应用在此区域的量化偏

    2024年02月07日
    浏览(35)
  • jQuery选择器(二)(基本过滤器,内容过滤器,可见过滤器)

    写在前面 jQuery是一个快速、简洁的 JavaScript 框架,是继Prototype之后又一个优秀的 JavaScript 代码库。jQuery的设计宗旨是“WriteLess,DoMore”,即倡导写更少的代码,做 更多的事情。jQuery封装了 JavaScript 常用的功能代码,提供一种简便的 JavaScript 设计模式,优化HTML文档操作、事件

    2024年02月02日
    浏览(52)
  • Gateway自定义过滤器——全局过滤器

    首先,我们要知道全局过滤器其实是特殊路由过滤器(特殊的GatewayFilter),会有条件地作用于所有路由。 为什么要自定义全局过滤器?就好比是看大门的保安大叔,平时主要是做好进出大门外来人员登记即可,但是因为新冠疫情,现在还需要给外来人员测量体温等等。而已有的

    2024年02月16日
    浏览(44)
  • 异常过滤器—MVC中异常过滤器使用

    异常过滤器( Exception Filters )是 ASP.NET Core 中用于处理全局异常的机制。它们允许你在发生异常时捕获、处理和记录异常,并提供自定义的异常处理逻辑。异常过滤器在整个应用程序范围内生效,可以用于处理各种异常情况。用于实现常见的错误处理策略,没有之前和之后事

    2024年02月13日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包