用于事件处理的自定义QGraphicsItemGroup

时间:2014-05-07 03:09:21

标签: c++ qt inheritance graphics

我有程序,用户选择一个块并可以在屏幕上移动它;但是,主块区域内的块需要相对于主块的运动移动。

我通过制作这些块的QGraphicsItemGroup并设置正确的标志来实现这一点。

    dragGroup = this->scene()->createItemGroup(items);
    this->dragGroup->setHandlesChildEvents(true);
    this->dragGroup->setFlag(ItemIsMovable);

因此,忽略了拆除组的主要项目mouseReleaseEvent()。因此,主块内的块被卡在组中,并且在初始拖动完成后不能独立移动。我的想法是创建一个自定义QGraphicsItemGroup,其mouseReleaseEvent()调用主块事件来杀死该组。

我无法弄清楚如何做到这一点。我尝试过对它进行子类化,但是场景创建了基类,而不是我的派生类,在这种情况下,dynamic_cast似乎不起作用。

OR,是否有另一种方法来完成同样的事情,让QGraphicsItemGroup控制一些事件,而块本身控制其他事件?或者QGraphicsItemGroup在这种情况下不适合。

0 个答案:

没有答案
相关问题