tkinter.dnd — Поддержка перетаскивания
Исходный код: 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) -
Функция-фабрика для процесса перетаскивания.
См. также
© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.9/library/tkinter.dnd.html