делаю я значит 2 класса потомка QGraphicsItem - Map и ContourMap, затем их объявляю:
class Map : public QGraphicsItem
{
....
}
class ContourMap : public QGraphicsItem
{
....
}
....
Map *map = new Map();
ContourMap *cont_map = new ContourMap();
//Затем делаю cont_map дочерним по отношению к map:
cont_map->setParenItem(map);
//Делаю, чтобы map можно было выделять и двигать:
map->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
//Для дочернего элемента cont_map это не нужно, так как он должен двигаться вместе с базовым
По умолчанию свойство visible у обоих элементов - true, они отображаются. Допустим если потом применить к родительскому объекту map метод setVisible(false), то прячется не только он, но и дочерний объект, правильно. Если затем сделать cont_map->setVisible(true) - то дочерний объект отобразиться, хотя родитель по прежнему не виден. То есть когда прячешь родителя - связб между ним и детьми есть, а когда показываешь ребенка, то связи этой нет. Так что это все-таки баг.