tkinter.dnd – Поддержка перетаскивания¶tkinter.dnd – Drag and drop support
Исходный код: Lib/tkinter/dnd.py
Примечание
Это экспериментальная возможность, и она будет отмечена как устаревшая, когда будет заменена на Tk DND.
Модуль tkinter.dnd предоставляет поддержку перетаскивания для объектов в рамках
одного приложения, в одном окне или между окнами. Чтобы сделать
объект перетаскиваемым, необходимо создать для него привязку события, запускающую
процесс перетаскивания. Обычно событие ButtonPress привязывается к написанной
функции обратного вызова (см. Привязки и события). Эта функция должна
вызвать dnd_start(), где 'source' – перетаскиваемый объект, а 'event' – событие, инициировавшее вызов (аргумент функции обратного вызова).
Выбор целевого объекта происходит следующим образом:
Поиск целевого виджета в области под курсором (сверху вниз)
Целевой виджет должен иметь вызываемый атрибут dnd_accept
Если dnd_accept отсутствует или возвращает
None, поиск переходит к родительскому виджетуЕсли целевой виджет не найден, целевым объектом становится
None
Вызов <old_target>.dnd_leave(source, event)
Вызов <new_target>.dnd_enter(source, event)
Вызов <target>.dnd_commit(source, event) для уведомления о сбросе
Вызов <source>.dnd_end(target, event) для сигнала об окончании перетаскивания
- class tkinter.dnd.DndHandler(source, event)¶
Класс DndHandler обрабатывает события перетаскивания, отслеживая события Motion и ButtonRelease на корневом виджете события.
- cancel(event=None)¶
Отменяет процесс перетаскивания.
- finish(event, commit=0)¶
Выполняет завершающие функции перетаскивания.
- on_motion(event)¶
Проверяет область под курсором мыши на наличие целевых объектов во время перетаскивания.
- on_release(event)¶
Сигнализирует об окончании перетаскивания, когда срабатывает шаблон отпускания.
- tkinter.dnd.dnd_start(source, event)¶
Фабричная функция для процесса перетаскивания.
См. также