ArcGIS for Desktop

  • Documentation
  • Tarification
  • Support

  • My Profile
  • Aide
  • Sign Out
ArcGIS for Desktop

ArcGIS Online

La plateforme cartographique de votre organisation

ArcGIS for Desktop

Un SIG professionnel complet

ArcGIS for Server

SIG dans votre entreprise

ArcGIS for Developers

Outils de création d'applications de localisation

ArcGIS Solutions

Modèles d'applications et de cartes gratuits pour votre secteur d'activité

ArcGIS Marketplace

Téléchargez des applications et des données pour votre organisation.

  • Documentation
  • Tarification
  • Support
Esri
  • Se connecter
user
  • Mon profil
  • Déconnexion

Aide

  • Accueil
  • Commencer
  • Carte
  • Analyser
  • Gérer les données
  • Outils
  • Plus...

Le module pythonaddins

Le module pythonaddins comprend des fonctions de prise en charge des compléments Python.

Remarque :

Vous ne pouvez utiliser le module pythonaddins que dans un complément Python. Il ne peut pas être utilisé dans des scripts autonomes ou des outils de script de géotraitement.

FonctionExplication

OpenDialog({title}, {multiple_selection}, {starting_location}, {button_caption}, {filter}, {filter_label})

Ouvre une boîte de dialogue permettant de sélectionner un ou plusieurs jeux de données SIG. Cette fonction renvoie le chemin complet du jeu de données choisi. Si plusieurs jeux de données sont choisis, elle renvoie une liste de chemins complets. Aucun filtrage n'a lieu sur les jeux de données en entrée (par exemple, filtrer uniquement les classes d'entités points.

  • {title} : titre de la boîte de dialogue.
  • {multiple_selection} : indique s'il est possible de sélectionner plusieurs éléments. La valeur par défaut est False.
  • {starting_location} : chemin d'accès à l'emplacement de départ.
  • {button_caption} : légende à utiliser pour le bouton Ouvrir.
  • {filter} : argument de filtre pouvant être appelé. La routine pouvant être appelée accepte un seul argument, un chemin d'accès à l'élément sélectionné dans le catalogue, et renvoie les valeurs True ou False pour déterminer s'il est possible ou non d'ouvrir l'élément. Voir l'exemple de code ci-dessous.
  • {filter_label} : il s'agit du texte qui apparaît dans la zone de liste déroulante Type : de la boîte de dialogue.

SaveDialog({title}, {name_text}, {starting_location}, {filter}, {filter_label})

Ouvre une boîte de dialogue permettant d'enregistrer les données. Cette fonction renvoie le chemin complet du jeu de données à enregistrer.

  • {title} : titre de la boîte de dialogue.
  • {name_text} : nom du jeu de données affiché dans la zone de texte de nom de la boîte de dialogue.
  • {starting_location} : chemin d'accès à l'emplacement de départ où les données seront enregistrées.
  • {filter} : argument de filtre pouvant être appelé. La routine pouvant être appelée accepte un seul argument, un chemin d'accès à l'élément sélectionné dans le catalogue, et renvoie les valeurs True ou False pour déterminer s'il est possible ou non d'enregistrer l'élément. Voir les exemples de code ci-dessous.
  • {filter_label} : il s'agit du texte qui apparaît dans la zone de liste déroulante Type : de la boîte de dialogue.

GPToolDialog(toolbox, tool_name)

Ouvre une boîte de dialogue de l'outil de géotraitement.

  • toolbox : emplacement de la boîte à outils.
  • tool_name : nom de l'outil.

MessageBox(message, title, {mb_type})

Afficher une zone de message. Cette fonction renvoie une valeur de chaîne représentant le bouton de message enfoncé.

  • message : message à afficher.
  • title : titre de la zone de message.
  • {mb_type} : type de zone de message à afficher. L'option par défaut est 0 (message OK). Pour obtenir une liste complète des codes mb_type, consultez la table ci-dessous.

GetSelectedTOCLayerOrDataFrame()

Renvoie la couche ou le bloc de données sélectionné de la table des matières.

GetSelectedCatalogWindowPath()

Renvoie le chemin d'accès complet à l'élément sélectionné dans la fenêtre Catalogue.

ProgressDialog()

Renvoie un objet ProgressDialog. L'objet de boîte de dialogue de progression devient automatiquement visible lorsque vous entrez dans le bloc with et disparaît lorsque vous le quittez. Voir l'exemple d'extrait de code ci-dessous.

Les propriétés sont les suivantes :

animation

Les valeurs valides sont None, « Fichier », « Spirale »

description

Description longue :

titre

Boîte de dialogue

annulé

Renvoie true si vous appuyez sur le bouton Annuler.

canCancel

Active ou désactive le bouton Annuler

progress

Nombre compris entre 1 et 100 représentant la progression de la barre

Code mb_typeType de zone de message

0

OK uniquement

1

OK/Annuler

2

Annuler/Réessayer/Ignorer

3

Oui/Non/Annuler

4

Oui/Non

5

Réessayer/Annuler

6

Annuler/Réessayer/Continuer

Codes {mb_type}

Ce bouton de complément fait appel à la fonction OpenDialog() pour sélectionner un jeu de fichiers de couches et ajoute chaque couche au bloc de données sélectionné.

import arcpy
import pythonaddins

class AddLayers(object):
    def __init__(self):
        self.enabled = True
        self.checked = False
    def onClick(self):
        layer_files = pythonaddins.OpenDialog('Select Layers', True, r'C:\GISData', 'Add')
        mxd = arcpy.mapping.MapDocument('current')
        df = pythonaddins.GetSelectedTOCLayerOrDataFrame()
        if not isinstance(df, arcpy.mapping.Layer):
            for layer_file in layer_files:
                layer = arcpy.mapping.Layer(layer_file)
                arcpy.mapping.AddLayer(df, layer)
        else:
            pythonaddins.MessageBox('Select a data frame', 'INFO', 0)

Ce bouton de complément ouvre un outil de géotraitement.

import arcpy
import pythonaddins

class OpenGPTool(object):
    def __init__(self):
        self.enabled = True
        self.checked = False
    def onClick(self):
        pythonaddins.GPToolDialog(r'C:\MyTools\WaterStudy.tbx', 'GroundWaterYield')

Exemple de boîte de dialogue de progression : à tester dans la fenêtre Python dans ArcGIS for Desktop.

import pythonaddins
with pythonaddins.ProgressDialog as dialog:
    dialog.title = "Progress Dialog"
    dialog.description = "Copying a large feature class."
    dialog.animation = "File"
    for i in xrange(100):
        dialog.progress = i
        time.sleep(0.125)
        if dialog.cancelled:
            raise Exception("Ooops")

Seuls les fichiers texte peuvent être ouverts.

import os
class MyValidator(object):
    def __str__(self):
        return "Text files(*.txt)"
    def __call__(self, filename):
        if os.path.isfile(filename) and filename.lower().endswith(".txt"):
            return True
        return False

filename = pythonaddins.OpenDialog(r"c:\files", filter=MyValidator())
Vous avez un commentaire à formuler concernant cette rubrique ?

ArcGIS for Desktop

  • Accueil
  • Documentation
  • Tarification
  • Support

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS for Desktop
  • ArcGIS for Server
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

A propos d'Esri

  • A propos de la société
  • Carrières
  • Blog des initiés
  • Conférence des utilisateurs
  • Sommet des développeurs
Esri
© Copyright 2016 Environmental Systems Research Institute, Inc. | Confidentialité | Légal