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)¶ Фабричная функция для процесса перетаскивания.
См. также