| Название: Невозможно установить размер 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 "крупного" имеджа ничего хорошего не дает, он бестолково загораживает приемник(и).  Это ерунда - имидж полупрозрачный, ничего не загораживает. |