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.10/library/tkinter.dnd.html