tkinter.dnd — Unterstützung für Drag-and-drop¶
Quellcode: Lib/tkinter/dnd.py
Bemerkung
Dies ist experimentell und wird abgekündigt, sobald es durch Tk DND ersetzt wird.
Das Modul tkinter.dnd stellt Drag-and-drop-Unterstützung für Objekte innerhalb einer einzelnen Anwendung bereit, im selben Fenster oder zwischen Fenstern. Damit ein Objekt gezogen werden kann, musst du dafür eine Ereignisbindung erzeugen, die den Drag-and-drop-Vorgang startet. Üblicherweise bindest du ein ButtonPress-Ereignis an eine selbst geschriebene Callback-Funktion (siehe Bindungen und Ereignisse). Die Funktion sollte dnd_start() aufrufen, wobei source das zu ziehende Objekt ist und event das Ereignis, das den Aufruf ausgelöst hat (das Argument deiner Callback-Funktion).
Die Auswahl eines Zielobjekts läuft folgendermaßen ab:
Der Bereich unter der Maus wird von oben nach unten nach einem Ziel-Widget durchsucht:
das Ziel-Widget sollte ein aufrufbares Attribut dnd_accept besitzen;
ist dnd_accept nicht vorhanden oder gibt es
Nonezurück, wird die Suche beim übergeordneten Widget fortgesetzt;wird kein Ziel-Widget gefunden, ist das Zielobjekt
None.
Aufruf von
<old_target>.dnd_leave(source, event).Aufruf von
<new_target>.dnd_enter(source, event).Aufruf von
<target>.dnd_commit(source, event), um das Ablegen zu melden.Aufruf von
<source>.dnd_end(target, event), um das Ende von Drag-and-drop zu signalisieren.
- class tkinter.dnd.DndHandler(source, event)¶
Die Klasse DndHandler verarbeitet Drag-and-drop-Ereignisse und verfolgt dazu Motion- und ButtonRelease-Ereignisse auf dem Root-Fenster des Ereignis-Widgets.
- cancel(event=None)¶
Bricht den Drag-and-drop-Vorgang ab.
- finish(event, commit=0)¶
Führt die Funktionen zum Beenden von Drag-and-drop aus.
- on_motion(event)¶
Untersucht während des Ziehens den Bereich unter der Maus auf Zielobjekte.
- on_release(event)¶
Signalisiert das Ende des Ziehens, wenn das Muster zum Loslassen ausgelöst wird.
- tkinter.dnd.dnd_start(source, event)¶
Factory-Funktion für den Drag-and-drop-Vorgang. Gibt die
DndHandler-Instanz zurück, die das Ziehen verwaltet, oderNone, wenn kein Ziehen gestartet werden konnte.
Siehe auch