Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Система рисования. Печать _ diagramscene из примеров Qt + itemChange

Автор: _Vitaliy_ 16.8.2011, 6:17

Берем проект diagramscene из примеров, поставляемый с Qt.
В diagramitem.срр находим функцию

QVariant DiagramItem::itemChange(GraphicsItemChange change,
                     const QVariant &value)

"ремим" все что в ней есть и согласно помощи Асистента вставляем:
if (change == ItemPositionChange) {
             // value это новое положение.
             QPointF newPos = value.toPointF();
             newPos.setX(x());
             QRectF rect = scene()->sceneRect();
             if (!rect.contains(newPos)) {
                 // Сохраняем элемент внутри прямоугольника сцены.
                 newPos.setX(qMin(rect.right(), qMax(newPos.x(), rect.left())));
                 newPos.setY(qMin(rect.bottom(), qMax(newPos.y(), rect.top())));
                 return newPos;
             }
         }
    return QGraphicsItem::itemChange(change, value);

однако ограничение перемещения по оси Х не происходит !!!???

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)