tkinter.dnd — Drag and drop support¶
Вихідний код: Lib/tkinter/dnd.py
Примітка
Це є експериментальним і має бути застарілим, коли його буде замінено на Tk DND.
Модуль tkinter.dnd забезпечує підтримку перетягування об’єктів в одній програмі, в одному вікні або між вікнами. Щоб увімкнути перетягування об’єкта, необхідно створити для нього прив’язку події, яка запускає процес перетягування. Як правило, ви прив’язуєте подію ButtonPress до функції зворотного виклику, яку ви пишете (див. Bindings and events). Функція має викликати dnd_start(), де «source» — це об’єкт, який потрібно перетягнути, а «event» — це подія, яка викликала виклик (аргумент вашої функції зворотного виклику).
Вибір цільового об’єкта відбувається наступним чином:
Пошук зверху вниз області під курсором миші для цільового віджета
Цільовий віджет повинен мати атрибут dnd_accept, який можна викликати
If dnd_accept is not present or returns
None, search moves to parent widgetIf no target widget is found, then the target object is
None
Виклик * <old_target> .dnd_leave(джерело, подія)*
Виклик * <new_target> .dnd_enter(джерело, подія)*
Зателефонуйте на номер * <target> .dnd_commit(джерело, подія)*, щоб повідомити про скидання
Виклик * <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
DndHandlerinstance managing the drag, orNoneif a drag could not be started.
Дивись також