Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: TheBlade от Декабрь 12, 2010, 21:51



Название: MouseMoveEvent QGraphicsScene только при нажатой кнопке мыши...
Отправлено: TheBlade от Декабрь 12, 2010, 21:51
Только, что видел похожую тему, которая не решила моих проблем, а писать в тему с пометкой РЕШЕНО думаю бессмысленно.
Сцена не видит перемещения мыши, хотя в 4.6 это событие работало.
Если какая-нибудь кнопка мыши нажата то сцена начинает ловить перемещение...
Во View таже проблема, но устраняется элементарно -
setMouseTracking(true) после этого вьюха стала получать события перемещения, но у сцены такой опции нет, она не наследована от QWidget...
Буду очень признателен за любую помощь...


Название: Re: MouseMoveEvent QGraphicsScene только при нажатой кнопке мыши...
Отправлено: TheBlade от Декабрь 12, 2010, 22:01
Разобрался... странно что сразу не заметил, если поставить setMouseTracking(true); для View которая связана со сценой тогда событие перемещения будет передано сцене.


Название: Re: MouseMoveEvent QGraphicsScene только при нажатой кнопке мыши...
Отправлено: mal от Декабрь 14, 2010, 17:01
на сцене должен быть хоть один айтем, у которого установлено свойство setAcceptHoverEvents(true).
Айтем можно погасить, если он не нужен. Например так я делаю  в одном проекте - ну сцену положен пиксмапайтем, рект сцены равен ректу этого пиксмапа. Сам пиксмап мне тут конкретно не нужен. Я его гашу, однако сцена ловит MouseMoveEvent, а так как пиксмапайтем погашен, его нахождение на сцене не создает никаких дополнительных накладных расходов.