Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
FORUM PYTHON F.A.Q PYTHON TUTORIELS PYTHON SOURCES PYTHON OUTILS PYTHON LIVRES PYTHON
Chapitre 22. Le glisser-déposer (DND)

Chapitre 22. Le glisser-déposer (DND)

PyGTK possède un ensemble de fonctions de haut niveau de communication inter-processus via le système glisser-déposer. PyGTK peut utiliser le glisser-déposer par dessus les protocoles de bas niveau de Xdnd et le glisser-déposer Motif.

22.1. Aperçu du DND

Une application capable du glisser-déposer doit d'abord définir et configurer le(s) widget(s) pour le glisser-déposer. Chacun des widgets peut être l'origine et/ou la destination du glisser-déposer. Il faut noter que ces widgets doivent possèder une fenêtre X associée.

Les widgets origine peuvent exporter des données du glisser, en permettant ainsi à l'utilisateur de tirer des objets à partir d'elles, pendant que les widgets de destination peuvent recevoir des données du glisser. Les destinations du glisser-déposer peuvent limiter de qui ils acceptent des données du glisser, par ex. la même application ou n'importe quelle application (y compris eux-mêmes).

Envoyer et recevoir des données de déposer utilisent des signaux. Déposer un élément sur un widget de destination exige à la fois une demande de données (pour le widget origine) et un gestionnaire de signal de réception de données (pour le widget destination). Des gestionnaires de signaux supplémentaires peuvent être connectés si on souhaite savoir quand un glisser commence (à l'instant même du début), jusqu'à la réalisation du déposer, et quand la procédure glisser-déposer entière s'esr terminée (avec succès ou pas).

Votre application aura besoin de fournir des données aux widgets origine quand ce sera demandé, ce qui implique d'avoir ungestionnaire de signal de requête de données de glisser. Pour les widgets de destination, ils auront besoin d'un gestionnaire de signal de données de déposer reçues.

Un cycle de glisser-déposer typique se présentera ainsi :

  • Le glisser commence. Le widget origine peut recevoir le signal "drag-begin". Il peut configurer une icône de glisser, etc.

  • Le glisser se déplace au-dessus d'une zone de déposer. Le widget destination peut recevoir le signal "drag-motion".

  • Le déposer est réalisé. Le widget destination peut recevoir le signal "drag-drop". Il doit demander les données de l'origine.

  • Requête des données du glisser (quand le déposer a lieu). Le widget origine peut recevoir le signal "drag-data-get"

  • Données du déposer reçues (de la même application ou d'une autre). Le widget destination peut recevoir le signal "drag-data-received".

  • Données du glisser supprimées (si le glisser était un déplacement). Le widget origne peut recevoir le signal "drag-data-delete".

  • Procédure glisser-déposer effectuée. Le widget origine peut recevoir le signal "drag-end".

Il existe quelques étapes mineures qui peuvent s'intercaler ici où là, mais nous entrerons dans les détails plus tard.

Responsable bénévole de la rubrique Python : Guillaume Duriaud - Contacter par EMail :
Vos questions techniques : forum d'entraide Python - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.