Название: [РЕШЕНО] Как таскать сцену, если курсор внутри айтема? Отправлено: iroln от Май 29, 2012, 15:15 Всем привет!
Описываю проблему. Дано (смотрите картинку): QGraphicsView QGraphicsScene QGraphicsRectItem У QGraphicsView включен режим DragMode = ScrollHandDrag У QGraphicsRectItem флаг ItemIsMovable = false Что хочу: Хочу таскать мышкой вид над сценой, если курсор находится внутри айтема. Проблема: не тащится. :) То есть, другими словами, если у айтема снят флаг Movable, как сделать его "прозрачным", то есть как заставить Qt его игнорировать, никак не учитывать при таскании внутри вида? Перепробовал для QGraphicsRectItem setEnable(false), setActive(fasle), ItemIsMovable = false, ItemIsFocusable = false, setAcceptedMouseButtons(Qt.NoButton) - ничего не помогает! Название: Re: Как таскать сцену, если курсор внутри айтема? Отправлено: iroln от Май 29, 2012, 15:55 Небольшое уточнение.
При попытке схватить сцену и протащить, когда курсор внутри айтема, то происходит сброс DragMode у QGraphicsView на NoDrag. Попробовал навесить eventFilter и выставлять руками Код Не помогает, курсор меняется на "руку", но вид не шевелится. Что за бред на ровном месте. Нафига неактивный айтем забирает на себя управление и не даёт ничего сделать? Ненавижу Qt :( Название: Re: Как таскать сцену, если курсор внутри айтема? Отправлено: iroln от Май 29, 2012, 16:58 Похоже, это мой косяк. Проблема наблюдается только с моей собственной реализацией сцены. :(
Название: Re: Как таскать сцену, если курсор внутри айтема? Отправлено: mks от Май 30, 2012, 00:44 ... Вы хотите таскать сцену только тогда когда курсор внутри вашего серого прямоугольника ? Я с трудом улавливаю ход вашей мысли. Устроит ли такой вариант: левая кнопка мыши таскает объекты по сцене, а правая всю сцену внутри вида ?Что хочу: Хочу таскать мышкой вид над сценой, если курсор находится внутри айтема. Проблема: не тащится. :) То есть, другими словами, если у айтема снят флаг Movable, как сделать его "прозрачным", то есть как заставить Qt его игнорировать, никак не учитывать при таскании внутри вида? ... Название: Re: Как таскать сцену, если курсор внутри айтема? Отправлено: iroln от Май 30, 2012, 20:51 Вы хотите таскать сцену только тогда когда курсор внутри вашего серого прямоугольника ? Я с трудом улавливаю ход вашей мысли. Устроит ли такой вариант: левая кнопка мыши таскает объекты по сцене, а правая всю сцену внутри вида ? Ход моих мыслей незатейлив. Мне надо было таскать вид над сценой, когда курсор находился где угодно. Я сам накосячил, о чём и написал. В моей унаследованной сцене в методах обработки событий мыши была ошибка, которая отключала DragMode для текущего вида если курсор попадал в область любого айтема. В общем, уже всё нормально, и я посыпаю голову пеплом. :)Кстати ошибка у меня появилась, вследствие того, что я пытался исправить реальный баг Qt, который я зарепортил год назад, но его даже никто не принял. |