Название: Невозможно установить размер QDrag Отправлено: Гурман от Март 02, 2015, 17:51 Блин... При работе QDrag события для разнообразных dragEnterEvent() и dragMoveEvent() генерятся по заходу курсора в окружающий прямоугольник виджета. А если курсор "удерживает" изображение некого крупного объекта, например, "поднятое" со сцены и засунутое в QDrag - то фик, при заходе этого изображения в пределы другого объекта никакие eventы не генерятся. И даже загрузка всего этого изображения вместо курсора не помогла бы - событие генерится при входе именно "точки акцептуациии" курсора в прямоугольник виджета.
Получается, что задача "запретить ронять поднятый со сцены айтем на другой айтем" стандартным средством QDrag не решается. Или я что-то пропустил? Может можно как-то "размером события" управлять? Название: Re: Невозможно установить размер QDrag Отправлено: Igors от Март 02, 2015, 18:47 С год назад было подобное - нужно было дропать не в прямоугольник а "по маске". Решается, там можно добиться чтобы dragMoveEvent приходило при каждом движении внутри. На что-то надо ответить accept или ignore, ну методом втыка разберетесь
Название: Re: Невозможно установить размер QDrag Отправлено: Гурман от Март 02, 2015, 19:45 С маской приёмника по идее проблем не должно быть - это режается с помощью PaintPath. Но у меня другая проблема. Не в том, куда дропается. Проблема в том, что дропается. А точнее даже что драгается. Его размер не видно как задать, чтобы ивенты срабатывали, когда угол въезжает в поле приёмника. Они срабатывают только на въезд точки курсора. Не вижу даже куда втыкать.
Название: Re: Невозможно установить размер QDrag Отправлено: Igors от Март 03, 2015, 10:02 А точнее даже что драгается. Его размер не видно как задать, Тут однозначно нет, менять имедж DnD нельзя. Для таких целей я делал свое "таскаемое окно". чтобы ивенты срабатывали, когда угол въезжает в поле приёмника. Они срабатывают только на въезд точки курсора. Не вижу даже куда втыкать. Не только, можно получать каждый move внутри.А если курсор "удерживает" изображение некого крупного объекта, например, "поднятое" со сцены и засунутое в QDrag.. DnD "крупного" имеджа ничего хорошего не дает, он бестолково загораживает приемник(и). Ограничьте размер, напр до 64х64 или вообще используйте абстрактную иконку. Название: Re: Невозможно установить размер QDrag Отправлено: Гурман от Март 03, 2015, 11:09 Не только, можно получать каждый move внутри. Не вижу каким образом. Реагирует только на точку курсора. DnD "крупного" имеджа ничего хорошего не дает, он бестолково загораживает приемник(и). Это ерунда - имидж полупрозрачный, ничего не загораживает. |