Если мы создадим два QGraphicsItemа родителя и потомка, и обоим включим флаг ItemIsMovable, то потомок будет перемещаться независимо от родителя, а при движении родителя будут двигаться и дочерние итемы. Такое поведение мне и нужно. Но, почему то, когда в роли родителя выступает QGraphicsItemGroup этот фокус не прокатывает. Такое чувство, что QGraphicsItemGroup все дочерние итемы просто добавляет в группу, после чего независимо двигаться они уже не могут. Можно ли это как то обойти?
Пример:
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGraphicsScene scene(0, 0, 500, 500);
QGraphicsView view(&scene);
//good
QGraphicsRectItem itemA(10, 10, 20, 20, NULL, &scene);
itemA.setFlag(QGraphicsItem::ItemIsMovable);
QGraphicsRectItem itemB(40, 40, 20, 20, NULL, &scene);
itemB.setParentItem(&itemA);
itemB.setFlag(QGraphicsItem::ItemIsMovable);
//bad
QGraphicsItemGroup itemC(NULL, &scene);
itemC.setFlag(QGraphicsItem::ItemIsMovable);
QGraphicsRectItem itemD(100, 100, 20, 20, NULL, &scene);
itemC.addToGroup(&itemD);
QGraphicsRectItem itemE(140, 140, 20, 20, NULL, &scene);
itemE.setParentItem(&itemC);
itemE.setFlag(QGraphicsItem::ItemIsMovable);
view.show();
return a.exec();
}