tkinter.dnd
— Поддержка перетаскивания¶
Исходный код: Lib/tkinter/dnd.py.
Примечание
Это экспериментальный вариант, который будет устаревшим, когда будет заменен на Tk DND.
Модуль tkinter.dnd
обеспечивает поддержку перетаскивания объектов в пределах одного приложения, в одном окне или между окнами. Чтобы объект можно было перетаскивать, вы должны создать для него привязку к событию, которое запускает процесс перетаскивания. Обычно вы привязываете событие ButtonPress к написанной вами функции обратного вызова (см. Связки и события). Функция должна вызывать dnd_start()
, где „source“ - это объект, который нужно перетащить, а „event“ - это событие, вызвавшее вызов (аргумент вашей функции обратного вызова).
Выбор целевого объекта происходит следующим образом:
Нисходящий поиск целевого виджета в области под мышью
Целевой виджет должен иметь вызываемый атрибут dnd_accept.
Если dnd_accept не присутствует или возвращает None, поиск переходит к родительскому виджету
Если целевой виджет не найден, то целевым объектом будет None
Вызов <старая_цель>.dnd_leave(source, event).
Вызов <новая_цель>.dnd_enter(source, event).
Вызов <цель>.dnd_commit(source, event) для уведомления о падении
Вызов <источник>.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)¶ Заводская функция для процесса перетаскивания.
См.также