# `tkinter.dnd` --- Drag and drop support

Code source : Lib/tkinter/dnd.py

Note

Ceci est expérimental et devrait être obsolète lorsqu'il sera remplacé par le Tk DND.

The `tkinter.dnd` module provides drag-and-drop support for objects within a single application, within the same window or between windows. To enable an object to be dragged, you must create an event binding for it that starts the drag-and-drop process. Typically, you bind a ButtonPress event to a callback function that you write (see Liaisons et événements). The function should call `dnd_start()`, where 'source' is the object to be dragged, and 'event' is the event that invoked the call (the argument to your callback function).

La sélection d'un objet cible se produit comme suit :

1. Recherche descendante de la zone sous la souris pour le widget cible

> - Le widget cible doit avoir un attribut appelable 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. Appel à `<old_target>.dnd_leave(source, event)`

3. Appel à `<new_target>.dnd_enter(source, event)`

4. Appel à `<target>.dnd_commit(source, event)` pour notifier le déposer.

5. Appel à `<source>.dnd_end(target, event)` pour signaler la fin du glisser-déposer

class tkinter.dnd.DndHandler(source, event)

  La classe DndHandler gère les événements de glisser-déposer qui suivent les événements Motion et ButtonRelease à la racine du widget d'événement.

  cancel(event=None)

    Annule le processus de glisser-déposer.

  finish(event, commit=0)

    Exécute les fonctions de fin de glisser-déposer.

  on_motion(event)

    Inspecte la zone sous la souris pour les objets cibles pendant que le glissement est effectué.

  on_release(event)

    Signale la fin de la traînée lorsque le modèle de relâchement est déclenché.

tkinter.dnd.dnd_start(source, event)

  Fonction de fabrique pour le processus de glisser-déposer.

Voir aussi

Liaisons et événements