tkinter.dnd — Drag and drop support

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


Примітка

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

Модуль tkinter.dnd забезпечує підтримку перетягування об’єктів в одній програмі, в одному вікні або між вікнами. Щоб увімкнути перетягування об’єкта, необхідно створити для нього прив’язку події, яка запускає процес перетягування. Як правило, ви прив’язуєте подію ButtonPress до функції зворотного виклику, яку ви пишете (див. Bindings and events). Функція має викликати 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

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

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

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

  4. Виклик * <source> .dnd_end(target, event)*, щоб повідомити про закінчення перетягування

class tkinter.dnd.DndHandler(source, event)

Клас DndHandler обробляє події перетягування та відстеження подій Motion і ButtonRelease у корені віджета події.

cancel(event=None)

Скасуйте процес перетягування.

finish(event, commit=0)

Виконати кінець функцій перетягування.

on_motion(event)

Inspect area below mouse for target objects while a drag is performed.

on_release(event)

Сигнал про кінець перетягування, коли спрацьовує схема випуску.

tkinter.dnd.dnd_start(source, event)

Factory function for the drag-and-drop process. Return the DndHandler instance managing the drag, or None if a drag could not be started.

Дивись також

Bindings and events