为什么所有选中的QGraphicsItem都没有收到mouseMove事件?

时间:2014-11-24 15:01:53

标签: qt events qgraphicsitem

我的自定义GraphicsScene上有几个QGraphicsItem对象。它们有不同的自定义类型,因此它们中的一些必须以一种方式处理MouseMove事件,而其他方式则以不同的方式处理。 当我选择其中一些然后移动所选项目时,只有鼠标光标下的项目接收MouseMove事件,但其他项目不接受。移动开始时,我必须在MyCustomItemClass :: mouseMoveEvent中进行一些额外的操作。 那么为什么其他项目没有收到活动?

2 个答案:

答案 0 :(得分:0)

根据您的描述,我不会在MyCustomItemClass::mouseMoveEvent中处理这些操作,因为只有当鼠标移动到您已经说明的特定项目之上时才会执行此操作。

相反,我将mouseMoveEvent中的scene子类化,以检查选择了哪些项目,并在这些项目中执行相关方法。当然,根据鼠标的相对移动,你必须小心只能将它们相对移动到原来的位置。

答案 1 :(得分:0)

如果要选择一组项目然后一次全部移动它们,可以在选择期间将它们添加到QGraphicsItemGroup,然后将该组作为单个对象移动,这将移动所有项目在小组中。