# `tkinter.dnd` – Prise en charge du glisser-déposer

Code source : Lib/tkinter/dnd.py

Note

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

Le module `tkinter.dnd` offre une prise en charge du glisser-déposer d'objets au sein d'une même application, dans la même fenêtre ou entre les fenêtres. Pour activer le glissement d'un objet, vous devez créer une liaison d'événements pour celui-ci qui démarre le processus de glisser-déposer. En règle générale, vous liez un événement ButtonPress à une fonction de rappel que vous écrivez (voir Liaisons et événements). La fonction doit appeler `dnd_start()`, où source est l'objet à faire glisser et event est l'événement qui a invoqué l'appel (l'argument de votre fonction de rappel).

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

> - Si dnd_accept n'est pas présent ou renvoie `None`, la recherche se déplace vers le widget parent

> - Si aucun widget cible n'est trouvé, alors l'objet cible est `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