crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в diagramscene из примеров Qt + itemChange
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
_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);

однако ограничение перемещения по оси Х не происходит !!!???
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 19:48