# `tkinter.dnd` — Drag and drop support

Вихідний код: Lib/tkinter/dnd.py

Примітка

Це є експериментальним і має бути застарілим, коли його буде замінено на Tk DND.

Модуль `tkinter.dnd` забезпечує підтримку перетягування об’єктів в одній програмі, в одному вікні або між вікнами. Щоб увімкнути перетягування об’єкта, необхідно створити для нього прив’язку події, яка запускає процес перетягування. Як правило, ви прив’язуєте подію ButtonPress до функції зворотного виклику, яку ви пишете (див. Прив’язки та події). Функція має викликати `dnd_start()`, де «source» — це об’єкт, який потрібно перетягнути, а «event» — це подія, яка викликала виклик (аргумент вашої функції зворотного виклику).

Вибір цільового об’єкта відбувається наступним чином:

1. Пошук зверху вниз області під курсором миші для цільового віджета

> - Цільовий віджет повинен мати атрибут dnd_accept, який можна викликати

> - If dnd_accept is not present or returns `None`, search moves to parent widget

> - If no target widget is found, then the target object is `None`

2. Виклик * <old_target> .dnd_leave(джерело, подія)*

3. Виклик * <new_target> .dnd_enter(джерело, подія)*

4. Зателефонуйте на номер * <target> .dnd_commit(джерело, подія)*, щоб повідомити про скидання

5. Виклик * <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)

  Заводська функція для процесу перетягування.

Дивись також

Прив’язки та події