Création d'un bouton de complément Python

Création d'un bouton de complément Python

Un bouton est la forme la plus simple de personnalisation pouvant être utilisée pour exécuter une logique métier lorsque le bouton est utilisé.

Cette rubrique vous guide dans le processus de création d'un bouton sur une nouvelle barre d'outils à l'aide de l'assistant de complément Python. Avant de commencer ce workflow, vérifiez que vous avez créé un projet de complément ArcMap et spécifié des paramètres de projet. Pour plus d'informations, reportez-vous à la rubrique Création d'un projet de complément. Ce workflow explique comment créer un bouton pour ArcMap, mais vous pouvez utiliser cette procédure pour ajouter un bouton à toute application d'ArcGIS for Desktop. Cette rubrique présente la procédure de création d'un simple bouton Zoom sur les entités sélectionnées. La classe Python créée par l'Assistant sera ensuite examinée afin d'étudier les propriétés et méthodes qui fournissent des fonctionnalités au bouton.

La création d'un bouton est un processus impliquant les étapes suivantes :

Etapes :
  1. Création d'une barre d'outils ou d'un menu

    Après avoir saisi les paramètres du projet requis, cliquez sur l'onglet Contenu des compléments et commencez à déclarer vos personnalisations de complément. Un bouton peut se trouver sur une barre d'outils ou dans un menu. Dans cet exemple, une barre d'outils est créée en tant que conteneur du bouton. Reportez-vous à la rubrique Création d'une barre d'outils de compléments pour connaître la procédure de création de votre propre barre d'outils.

  2. Création du bouton

    Une fois que vous avez saisi les propriétés de la barre d'outils, vous pouvez créer un bouton. Cliquez avec le bouton droit sur la nouvelle barre d'outils nommée « Barre d'outils » et sélectionnez Nouveau bouton.

    Illustration de la définition des propriétés du bouton

    Un bouton possède un certain nombre de propriétés que vous devez définir. La liste ci-dessous répertorie toutes les propriétés et en donne une explication. Ces propriétés sont enregistrées dans le fichier config.xml du projet.

    Propriété

    Description

    Caption (requise)

    Définit la légende du bouton. L'illustration suivante présente la légende utilisée dans le Gestionnaire de compléments ArcGIS pour identifier les différents types de personnalisations disponibles (le type de complément est identifié entre parenthèses) :

    Illustration de la définition des propriétés du bouton dans le Gestionnaire de compléments

    L'illustration suivante présente la légende utilisée comme texte pour identifier le bouton sur la barre d'outils :

    Illustration de la légende du bouton sur une barre d'outils

    Class (requise)

    La classe Python qui est exécutée lors d'un clic sur le bouton dans une application bureautique. La classe Python est l'endroit où vous écrivez la logique métier du bouton. Faites appel à la convention d'attribution de nom avec des majuscules de Python lors de la construction d'une classe (par exemple, « ZoomSurEntitésSélectionnées » plutôt que « zoomsurentitéssélectionnées ».

    ID (requise)

    Nom unique permettant d'identifier le bouton. Vous pouvez créer plusieurs boutons pour un projet donné ; cet ID permet de distinguer les différents boutons. Dans l'idéal, vous devriez remplacer l'ID par défaut par une valeur plus explicite. Cet ID ne doit pas contenir d'espace. Vous pouvez utiliser des traits de soulignement pour lier les mots. N'utilisez pas de mots-clés Python. Consultez la documentation Python pour connaître les mots réservés.

    ToolTip (facultative)

    Brève description qui s'affiche lorsque le pointeur de la souris s'immobilise au-dessus du bouton dans une application bureautique.

    Message (facultative)

    Description détaillée de ce que fait le bouton. Le message apparaît sous l'info-bulle lorsque vous le pointeur de la souris s'immobilise sur le bouton.

    Image (facultative)

    Image 16 x 16 pixels destinée à symboliser le bouton. Le format d'image doit être l'un des formats généralement utilisés (à savoir, .bmp, .jpg, etc.). L'image sera copiée dans le dossier Images créé dans le projet de complément.

    La dernière section du bouton est constituée de l'en-tête et du contenu de l'Aide. Ces propriétés vous permettent de fournir des informations qui seront utilisées lorsqu'un utilisateur appellera l'aide contextuelle. Ce sont des rubriques qui restent visibles à l'écran jusqu'à ce que l'utilisateur clique ailleurs.

    Les propriétés suivantes comprennent cette section d'Aide contextuelle :

    Propriété

    Description

    Heading (facultative)

    Indique la nature du contenu de l'aide.

    Content (facultative)

    Contenu de l'Aide pour le bouton.

    Lorsque vous avez terminé de saisir les propriétés, vous pouvez cliquer sur le bouton Enregistrer dans le bas de l'Assistant. Cela a pour effet de créer tous les fichiers et dossiers nécessaires dans le dossier de travail.

  3. Modification du script Python

    À ce stade vous avez terminé d'ajouter les valeurs pour les propriétés nécessaires pour définir le bouton du complément. L'étape suivante de ce workflow consiste à modifier le script Python et à mettre à jour la classe Python de manière à inclure les fonctionnalités de zoom sur les entités sélectionnées. Si aucune entité n'est sélectionnée, elle zoome sur l'étendue générale de toutes les couches. Pour ajouter les fonctionnalités au bouton personnalisé, procédez de la manière suivante :

    1. Modifiez le script Python dans le dossier Install contenu dans le dossier de travail que vous avez créé grâce à l'Assistant.

      Une classe portant le même nom que la propriété Class que vous avez saisie ci-dessus existe. Ne la renommez pas, car son nom est référencé dans le fichier config.xml. Pour une présentation des fonctions et propriétés de la classe, reportez-vous à la rubrique classe Bouton.

    2. Ajoutez le code de script suivant dans la fonction onClick(self).

      Ce code empêche les fonctionnalités d'effectuer un zoom sur les entités sélectionnées.

      # Implementation of OnClick method of Button's class
      def onClick(self):
              # Get the current map document and the first data frame.
              mxd = arcpy.mapping.MapDocument('current')
              df = arcpy.mapping.ListDataFrames(mxd)[0]
              # Call the zoomToSelectedFeatures() method of the data frame class
              df.zoomToSelectedFeatures()
      
    3. Enregistrez le script.
  4. Test du bouton

    Une fois que vous avez créé le bouton et ajouté le code de script, il est important de créer le fichier de complément et de le tester avant de le partager. La procédure correspondante est indiquée à la rubrique Test d'un complément.

  5. Partage du complément

    Après avoir testé le bouton et confirmé qu'il fonctionne comme prévu, vous êtes prêt à déployer et partager le complément. Pour plus d'informations, reportez-vous à la rubrique Partage des compléments.

Thèmes connexes

5/10/2014