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–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/library/tkinter.dnd.html