Название: [Решено] библиотека и QGraphicsSceneMouseEvent Отправлено: mal от Ноябрь 23, 2010, 08:04 Ситуация: сделал из app библиотеку.
После этого сцена перестала ловить сообщения мыши без нажатых клавишь. Пошерстил документацию и форум - setMouseTracking(true) сцене, вьюпорту вьюхи и виджету, содержащему вьюху не помогают. Организация проекта: 1. app - QMainWindow->Widget->QGraphicsView - тут QGraphicsSceneMouseEvent работает без всяких заморочек 2. Для работы в качестве библиотеки наружу отдана функция, в которой создается QDialog . В функцию передается парент. Диалог размещается в этом паренте и создается экземпляр класса из 1. Т.е. схема такая: QMainWindow(другое app)->функция либы, создающая QDialog->QMainWindow->Widget->QGraphicsView. В таком варианте сцена ловит mouseMoveEvent только при нажатой клавише мышки. Подскажите куда курить, чтоб сцена видела перемещения мыши независимо от кликнутости кнопок мышки ? ??? Название: Re: библиотека и QGraphicsSceneMouseEvent Отправлено: GreatSnake от Ноябрь 23, 2010, 09:53 QGraphicsView::setInteractive( true )
Правда по умолчанию должно и так быть включено. Название: Re: библиотека и QGraphicsSceneMouseEvent Отправлено: mal от Ноябрь 23, 2010, 10:42 Оказалось все проще некуда (смайл бьющийся лбом о стенку) :
Хотя бы один айтем сцены должен иметь свойство setAcceptHoverEvents(true). При модернизации проекта, я выкосил группу неактуальных на данный момент айтемов , которым устанавливал это свойство. Сейчас попробовал тупо установить это свойство пиксмапу, который делаю бэкграундом сцены... и получил желаемый результат - движение мышки ловится во вьюхе. Название: Re: [Решено] библиотека и QGraphicsSceneMouseEvent Отправлено: TheBlade от Декабрь 12, 2010, 21:19 точно такаяже проблема: сцена не видит перемещения мыши, в 4.6 все было ок.
Mal, ты говорил что хотел поймать эвент перемещения в сцене, потом написал что движения мышки ловится во вьюхе? Мне нужн именно поймать перемещение в сцене, без зажатой мыши, никак не могу понять как. QGraphicsView::setInteractive( true ) и setAcceptHoverEvents(true) для айтемов сцены не помогают. Название: Re: QGraphicsSceneMouseEvent только при нажатой кнопке мыши Отправлено: TheBlade от Декабрь 12, 2010, 21:43 setMouseTracking(true) после этого вьюха стала получать события перемещения, но у сцены такой опции нет, она не наследована от QWidget...
Название: Re: [Решено] библиотека и QGraphicsSceneMouseEvent Отправлено: mal от Декабрь 14, 2010, 16:54 TheBlade
надо перекрыть у сцены mouseMoveEvent ... |