tkinter.dnd
— Stöd för dra och släpp¶
Källkod: Lib/tkinter/dnd.py
Anteckning
Detta är experimentellt och kommer att tas bort när det ersätts med Tk DND.
Modulen tkinter.dnd
ger stöd för att dra och släppa objekt inom en och samma applikation, inom samma fönster eller mellan fönster. För att ett objekt ska kunna dras måste du skapa en händelsebindning för det som startar dra-och-släpp-processen. Vanligtvis binder du en ButtonPress-händelse till en callback-funktion som du skriver (se Bindningar och händelser). Funktionen ska anropa dnd_start()
, där ’source’ är objektet som ska dras och ’event’ är händelsen som utlöste anropet (argumentet till din callback-funktion).
Val av målobjekt sker på följande sätt:
Top-down-sökning av området under musen efter målwidget
Målwidgeten bör ha ett anropsbart dnd_accept-attribut
Om dnd_accept inte finns eller returnerar
None
flyttas sökningen till den överordnade widgetenOm ingen målwidget hittas är målobjektet
None
Anrop till <old_target>.dnd_leave(source, event)
Anrop till <new_target>.dnd_enter(source, event)
Anrop till <target>.dnd_commit(source, event) för att meddela om avlämning
Anrop till <source>.dnd_end(target, event) för att signalera slutet på drag-and-drop
- class tkinter.dnd.DndHandler(source, event)¶
Klassen DndHandler hanterar drag-och-släpp-händelser som spårar Motion- och ButtonRelease-händelser på roten av händelsewidgeten.
- cancel(event=None)¶
Avbryt dra-och-släpp-processen.
- finish(event, commit=0)¶
Utför slutet av drag-och-släpp-funktioner.
- on_motion(event)¶
Inspektera området under musen efter målobjekt medan dragningen utförs.
- on_release(event)¶
Signalera slutet på dragningen när utlösningsmönstret utlöses.
- tkinter.dnd.dnd_start(source, event)¶
Fabriksfunktion för drag-and-drop-process.
Se även