Russian Qt Forum
Ноябрь 23, 2024, 08:49
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Невозможно установить размер QDrag
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Невозможно установить размер QDrag (Прочитано 2799 раз)
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Невозможно установить размер QDrag
«
:
Март 02, 2015, 17:51 »
Блин... При работе QDrag события для разнообразных dragEnterEvent() и dragMoveEvent() генерятся по заходу
курсора
в окружающий прямоугольник виджета. А если курсор "удерживает" изображение некого крупного объекта, например, "поднятое" со сцены и засунутое в QDrag - то фик, при заходе этого изображения в пределы другого объекта никакие eventы не генерятся. И даже загрузка всего этого изображения вместо курсора не помогла бы - событие генерится при входе именно "точки акцептуациии" курсора в прямоугольник виджета.
Получается, что задача "запретить ронять поднятый со сцены айтем на другой айтем" стандартным средством QDrag не решается.
Или я что-то пропустил? Может можно как-то "размером события" управлять?
«
Последнее редактирование: Март 02, 2015, 17:53 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Невозможно установить размер QDrag
«
Ответ #1 :
Март 02, 2015, 18:47 »
С год назад было подобное - нужно было дропать не в прямоугольник а "по маске". Решается, там можно добиться чтобы dragMoveEvent приходило при каждом движении внутри. На что-то надо ответить accept или ignore, ну методом втыка разберетесь
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Невозможно установить размер QDrag
«
Ответ #2 :
Март 02, 2015, 19:45 »
С маской приёмника по идее проблем не должно быть - это режается с помощью PaintPath. Но у меня другая проблема. Не в том,
куда
дропается. Проблема в том,
что
дропается. А точнее даже
что драгается
. Его размер не видно как задать, чтобы ивенты срабатывали, когда угол въезжает в поле приёмника. Они срабатывают только на въезд точки курсора. Не вижу даже куда втыкать.
«
Последнее редактирование: Март 02, 2015, 19:47 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Невозможно установить размер QDrag
«
Ответ #3 :
Март 03, 2015, 10:02 »
Цитата: Гурман от Март 02, 2015, 19:45
А точнее даже
что драгается
. Его размер не видно как задать,
Тут однозначно нет, менять имедж DnD нельзя. Для таких целей я делал свое "таскаемое окно".
Цитата: Гурман от Март 02, 2015, 19:45
чтобы ивенты срабатывали, когда угол въезжает в поле приёмника. Они срабатывают только на въезд точки курсора. Не вижу даже куда втыкать.
Не только, можно получать каждый move внутри.
Цитата: Гурман от Март 02, 2015, 17:51
А если курсор "удерживает" изображение некого крупного объекта, например, "поднятое" со сцены и засунутое в QDrag..
DnD "крупного" имеджа ничего хорошего не дает, он бестолково загораживает приемник(и). Ограничьте размер, напр до 64х64 или вообще используйте абстрактную иконку.
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Невозможно установить размер QDrag
«
Ответ #4 :
Март 03, 2015, 11:09 »
Цитата: Igors от Март 03, 2015, 10:02
Не только, можно получать каждый move внутри.
Не вижу каким образом. Реагирует только на точку курсора.
Цитата: Igors от Март 03, 2015, 10:02
DnD "крупного" имеджа ничего хорошего не дает, он бестолково загораживает приемник(и).
Это ерунда - имидж полупрозрачный, ничего не загораживает.
Записан
2^7-1 == 127, задумайтесь...
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...