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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] QGraphicsItem перескакивает в нулевую позицию по событию mouseMoveEvent  (Прочитано 3304 раз)
Hrundel
Гость
« : Ноябрь 26, 2013, 16:35 »

Всем привет,

прошу прощения за глупый вопрос, но не могу найти решения.

QGraphicsItem перескакивает в нулевую позицию по событию mouseMoveEvent. То есть, Item находится в некоторой ненулевой
позиции. Стоит только начать перетаскивание и он прыгает в ноль на сцене. Прямо выскакивает из под мыши и потом все манипуляции смещения проиcходят относительно нуля.

Будте добры - объясните причину и средство как избавиться.
« Последнее редактирование: Декабрь 05, 2013, 12:20 от Hrundel » Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #1 : Ноябрь 26, 2013, 16:46 »

А вы перемещаете QGraphicsItem через выставление флага QGraphicsItem::ItemIsMovable или вручную через события mouseMoveEvent, mousePressEvent и mouseReleaseEvent? Улыбающийся
Записан

Hrundel
Гость
« Ответ #2 : Ноябрь 26, 2013, 16:49 »

Ну, конечно с флагом.  Смеющийся Смеющийся  Смеющийся

Код
C++ (Qt)
node->setFlags(QGraphicsItem::ItemIsMovable);
Записан
Hrundel
Гость
« Ответ #3 : Ноябрь 27, 2013, 12:39 »

Кстати хочу уточнить -
перевый узел при перетаскивании перемещается нормально как и положено, не прыгая в нулевую,
а вот все последующие почему-то прыгают!!!
Записан
Hrundel
Гость
« Ответ #4 : Декабрь 05, 2013, 12:18 »

Нашел в чем была проблема - моя невнимательность.
Короче в событиях узлов забыл передавать событие предку.

И все из-за одной строки:

Код
C++ (Qt)
void BSNode::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
{
    // ....
   QGraphicsItem::mouseReleaseEvent(event); // <--------------------- Этой стороки не хватало !!!
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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