За QGraphicsItem::ItemSendsGeometryChanges - спасибо.
Оказывается мой QtCreator каким-то странным образом подсовывает мне документацию от 4.5. Буду разбираться.
Про игру с ZOrder. У меня, проблема еще осложнается тем что у меня есть несколько типов объектов которые должны отрисовываться на разных слоях...
В итое добавил в обработчик itemChange() такой код:
if(change == QGraphicsItem::ItemSelectedChange) {
int myOldZValue = zValue();
int countOfSameTypeItems = 0;
foreach(QGraphicsItem *item, scene()->items()) {
if(item->type()==type()) {
int itemOldZValue=item->zValue();
if(itemOldZValue > myOldZValue) item->setZValue(itemOldZValue-1);
countOfSameTypeItems++;
}
}
setZValue(countOfSameTypeItems);
}
Вроде работает как надо.
В минусах: пришлось еще дописать в процедуру добавления объектов на сцену установку уникального ZOrder для новых объектов. И выделить для каждого из типов по собственной "z-области" что, в принципе, ставит ограничение на количество объектов "в слое". Но это не такая уж большая беда если учесть что "слоев" у меня всего три а ZOrder считается как real