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 :
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 parentSi aucun widget cible n'est trouvé, alors l'objet cible est
None
Appel à
<old_target>.dnd_leave(source, event)
Appel à
<new_target>.dnd_enter(source, event)
Appel à
<target>.dnd_commit(source, event)
pour notifier le déposer.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