【问题标题】:Tracking the mouse position on the QGraphicsItem跟踪 QGraphicsItem 上的鼠标位置
【发布时间】:2014-12-13 17:23:19
【问题描述】:

我有一个QGraphicsItem 的子类,我想在每次将鼠标单独悬停在该项目上时跟踪鼠标位置,它应该给出QGraphicsItem 的相对位置。我知道,当有QWidget(使用QWidget.setMouseTracking)和QMainWindow(通过安装事件过滤器)时如何处理这个问题,但我不知道如何处理QGraphicsItem。只有在有鼠标按下事件时才会触发鼠标移动事件,但这不是我们想要的。每当我将鼠标悬停在 QGraphicsItem 上时,我都想要一个触发器。请提出您的建议

【问题讨论】:

    标签: python pyqt mouseevent pyqt4 qgraphicsitem


    【解决方案1】:

    您将希望使用my_item.setAcceptHoverEvents(True) 来启用鼠标移动事件而无需鼠标按下事件。

    注意,这不会触发mouseMoveEvent,而是会触发hoverMoveEvent(当您最初将鼠标分别移到QGraphicsItem 上或离开hoverLeaveEvent 时,会触发hoverEnterEventhoverLeaveEvent。所以请确保您在 QGraphicsItem 的子类中覆盖此方法。

    【讨论】:

    • 再次感谢!!! .. :) 但我也想要 mousemove 事件,因为我正在使用它,用于平移。我可以在鼠标悬停事件中返回 mousemoveEvent 吗??
    • 我不确定我是否理解。当您单击并移动时,mouseMoveEvent 仍将被触发。也许你需要用你想要达到的目标来更新你的问题。
    • 我有一个 QGraphicsItem,它将缩放和平移(使用鼠标移动事件)。我刚刚学习了 PyQt4。我正在开发一个小型定制器。谢谢.. :)
    猜你喜欢
    • 2011-12-09
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多