【发布时间】:2012-01-22 21:04:57
【问题描述】:
我创建了一个实现 QGraphicsItem 的对象 Chartblock。我的目标是创建这些对象的网格,当鼠标按钮被按下(并按住)并且在每个块上是药物时,当光标进入它时在每个块上执行一些操作。
由于 QGraphicsItem 在其中被单击时会捕获鼠标事件,因此不会为 mouseMoveEvent 触发其他项目。然后我创建了一个基于 QGraphicsItemGroup 的对象来处理所有鼠标事件,但是我需要一些方法来将 mousePressEvent/mouseReleaseEvent 以及 mouseMoveEvent 传递给光标所在的每个孩子。
我是否在想如何做到这一点?看起来这样一个简单的动作不应该那么难创建,但是 QGraphicsItems 自己持有鼠标事件,我不知道如何解决它。我读过类似的情况,但似乎没有什么能给出一个直截了当的答案。
编辑:我想这样做的方法是跟踪我在数组中创建的每个 QGraphicsItem 的坐标/大小,然后在 Group mouseMoveEvent 中获取光标的位置,看看是否有命中..
【问题讨论】:
-
看来this older question 正是我想要做的,但没有提到真正的解决方案。
标签: c++ qt user-interface qgraphicsitem