我创建了一个实现QGraphicsItem的Chartblock对象。我的目标是创建一个这些对象的网格,当鼠标按钮被按下(并保持按下状态)并拖动到每个块上时,在光标进入每个块时对每个块执行某些操作。
由于QGraphicsItem在其内部被点击时会捕获鼠标事件,因此其他项将不会触发mouseMoveEvent。因此,我创建了一个基于QGraphicsItemGroup的对象来处理所有鼠标事件,但是我需要一种方法将mousePressEvent / mouseReleaseEvent以及mouseMoveEvent传递给光标悬停在其上的每个子项。
我是否过于考虑如何做到这一点?看起来这样一个简单的操作不应该那么难创建,但是由于QGraphicsItems将鼠标事件保留给自己,我不确定如何解决它。我已经阅读了类似的情况,但是没有什么能给出直接的答案。
编辑:我想一种方法是在数组中跟踪我创建的每个QGraphicsItem的坐标/大小,然后在Group mouseMoveEvent中获取光标的位置,并查看是否有命中。
由于QGraphicsItem在其内部被点击时会捕获鼠标事件,因此其他项将不会触发mouseMoveEvent。因此,我创建了一个基于QGraphicsItemGroup的对象来处理所有鼠标事件,但是我需要一种方法将mousePressEvent / mouseReleaseEvent以及mouseMoveEvent传递给光标悬停在其上的每个子项。
我是否过于考虑如何做到这一点?看起来这样一个简单的操作不应该那么难创建,但是由于QGraphicsItems将鼠标事件保留给自己,我不确定如何解决它。我已经阅读了类似的情况,但是没有什么能给出直接的答案。
编辑:我想一种方法是在数组中跟踪我创建的每个QGraphicsItem的坐标/大小,然后在Group mouseMoveEvent中获取光标的位置,并查看是否有命中。