gpt4 book ai didi

c++ - QGraphicsItem 上的事件过滤器

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:15 24 4
gpt4 key购买 nike

是否可以在 QGraphicsItem 上设置事件过滤器? Eventfilter 有一个参数,可以为您提供 QObject,但由于 QGraphicsItem 不是从 QObject 派生的,那么它如何工作?

最佳答案

QGraphicsItem 不是 QObject,但它们仍然接收事件,由它们的 QGraphicsScene 管理。并且它还支持事件过滤。QGraphicsItem::installSceneEventFilter( QGraphicsItem* filterItem ) 安装另一个项目来接收事件。覆盖过滤器项中的 sceneEventFilter() 以处理它们。它的工作方式类似于 QObject::eventFilter。重要提示:您安装过滤器的项目必须已经添加到场景才能使其正常工作。

如果过滤器项除了过滤什么都不做,我认为最简单的方法是从 QGraphicsItem 派生,实现什么都不做的 paint() 和返回空矩形的 boundingRect()。当然还要重新实现 sceneEventFilter。

另请注意,某些事件类在 QGraphicsView 上下文中发生变化,例如QMouseEvent 变成了 QGraphicsSceneMouseEvent,所以一定要过滤正确的东西。

关于c++ - QGraphicsItem 上的事件过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3239504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com