# `tkinter.dnd` — Soporte de arrastrar y soltar

Código fuente: Lib/tkinter/dnd.py

Nota

Esto es experimental y quedará obsoleto cuando se sustituya por el Tk DND.

El módulo `tkinter.dnd` proporciona soporte para arrastrar y soltar objetos dentro de una sola aplicación, dentro de la misma ventana o entre ventanas. Para permitir que se arrastre un objeto, debe crear un enlace de evento para él que inicie el proceso de arrastrar y soltar. Por lo general, vincula un evento ButtonPress a una función de devolución de llamada que escribe (consulte Enlaces y eventos). La función debe llamar a `dnd_start()`, donde “fuente” es el objeto que se va a arrastrar y “evento” es el evento que invoca la llamada (el argumento de la función de devolución de llamada).

La selección de un objeto de destino ocurre de la siguiente manera:

1. Búsqueda de arriba hacia abajo del área debajo del mouse para el widget de destino

> - El widget de destino debe tener un atributo dnd_accept invocable

> - Si dnd_accept no está presente o devuelve None, la búsqueda se mueve al widget principal

> - Si no se encuentra ningún widget de destino, el objeto de destino es None

2. Llama a <old_target>.dnd_leave(source, event)

3. Llama a <new_target>.dnd_enter(source, event)

4. Llama a <target>.dnd_commit(source, event) para notificar la caída

5. Llama a <source>.dnd_end(target, event) para señalar el final de arrastrar y soltar

class tkinter.dnd.DndHandler(source, event)

  La clase DndHandler maneja los eventos de arrastrar y soltar que rastrean los eventos Motion y ButtonRelease en la raíz del widget de eventos.

  cancel(event=None)

    Cancela el proceso de arrastrar y soltar.

  finish(event, commit=0)

    Ejecuta el fin de las funciones de arrastrar y soltar.

  on_motion(event)

    Inspecciona el área debajo del mouse en busca de objetos de destino mientras se realiza el arrastre.

  on_release(event)

    Señal de fin de arrastre cuando se activa el patrón de liberación.

tkinter.dnd.dnd_start(source, event)

  Función de fábrica para el proceso de arrastrar y soltar.

Ver también

Enlaces y eventos