Russian Qt Forum
Ноябрь 23, 2024, 19:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: itemChange не работает в win7....  (Прочитано 2370 раз)
AntonUfo
Гость
« : Январь 22, 2011, 22:31 »

Всем привет !

В книге Жасмин Бланшет, Марк Саммерфилд "Qt 4: программирование GUI на C++ " издание второе есть пример в котором
используется itemChange....
В Qt 4.5: Описание класса QGraphicsItem | Документация...  есть вот такой пример...


Код:
 QVariant Component::itemChange(GraphicsItemChange change, const QVariant &value)
 {
     if (change == ItemPositionChange && scene()) {
         // value это новое положение.
         QPointF newPos = value.toPointF();
         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);
 }

почему в XP все работает правильно... а в win7 нет...?



« Последнее редактирование: Январь 23, 2011, 01:09 от AntonUfo » Записан
AntonUfo
Гость
« Ответ #1 : Январь 23, 2011, 01:11 »

отвечу сам себе  Улыбающийся

Не отлавливается itemChange т.к. нужно установить флаг QGraphicsItem::ItemSendsGeometryChanges....

"This flag was introduced in Qt 4.6..."
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.039 секунд. Запросов: 20.