Suite

Ajouter des noms de fichiers de formes dans le message à la fenêtre de progression/à la boîte de dialogue d'ArcGIS for Desktop à partir d'ArcPy ?

Ajouter des noms de fichiers de formes dans le message à la fenêtre de progression/à la boîte de dialogue d'ArcGIS for Desktop à partir d'ArcPy ?


Comment utilisez-vous python dans un script ArcGIS 10.3 pour répertorier/imprimer les fichiers de formes avec un message provenant du résultat d'un outil de géotraitement dans la fenêtre de progression/boîte de dialogue. Par exemple;

abc.shp
1234.shp
zyx.shp
987.shp

Les 4 jeux de données ci-dessus ont été projetés sur : WGS_1984_World_Mercator et enregistrés dans C:GIS_Result

J'ai regardé cet exemple; http://resources.arcgis.com/en/help/main/10.2/index.html#//03q30000000q000000


Je vais supposer que vous utilisez ArcPy d'ArcGIS for Desktop pour écrire un outil de script Python.

Pour envoyer des messages à la boîte de dialogue de progression du géotraitement, vous pouvez utiliser

arcpy.AddMessage()

Par exemple:

arcpy.AddMessage("abc.shp")

ou alors:

fc = "abc.shp" arcpy.AddMessage(fc)

Le arcpy.AddMessage est le pain et le beurre pour ajouter vos propres messages dans les outils ArcToolbox Scripts. Vous pouvez également obtenir les messages de géotraitement avec arcpy.GetMessage/s. Ils sont très puissants lorsqu'ils sont utilisés dans les instructions if else et try.

Ajout d'un outil de script

importer arcpy importer os arcpy.AddMessage(" ") arcpy.AddMessage("================================== =================================") arcpy.AddMessage(" ") arcpy.AddMessage(" Data Walk : Listings Rasters & Repair Standalone Feature Classes") arcpy.AddMessage(" ") FolderOrWorkspace = arcpy.GetParameterAsText(0) RasterCount = 0 FeatureClassCount = 0 DataList = [] pour le nom de répertoire, les noms de répertoire, les noms de fichiers dans os.walk(FolderOrWorkspace): pour le nom de sous-répertoire dans les noms de répertoire : arcpy.env.workspace = os.path.join(dirname, subdirname) RasterList = arcpy.ListRasters() pour raster dans RasterList : RasterCount = (RasterCount +1) arcpy.AddMessage(" - RASTER:" + str( RasterCount) +" Name : "+raster +" Within : "+subdirname) desc = arcpy.Describe(raster) SR = desc.spatialReference try : arcpy.AddMessage(" - Band Count : %d" % desc.bandCount) except : arcpy.AddMessage(" - Ne prend pas en charge les bandes") essayez : arcpy.AddMessage(" - Type de compression : %s" % desc.compressionType) sauf : arcpy.AddMessage(" - Ne prend pas en charge la compression") essayez : arcpy.AddMessage(" - Format raster : "+desc.format) sauf : arcpy.AddError(" - Format raster : Erreur") #Message d'erreur arcpy.AddMessage(" - Référence spatiale : "+SR.name) arcpy.AddMessage (" - Type de référence : "+SR.type) arcpy.AddMessage(" ") FeatureClassList = arcpy.ListFeatureClasses() pour Feature dans FeatureClassList : desc = arcpy.Describe(Feature) FeaturePath = os.path.join(desc.path ,Feature) SR = desc.spatialReference FeatureClassCount = (FeatureClassCount +1) arcpy.AddMessage(" - FEATURE CLASS:" + str(FeatureClassCount) +" Nom : "+Feature +" Within : "+subdirname) arcpy.AddMessage(" - Type de forme : "+desc.shapeType) arcpy.AddMessage(" - Référence spatiale : "+SR.name) arcpy.AddMessage(" - Type de référence : "+SR.type) essayez : arcpy.RepairGeometry_management(FeaturePath, "DELETE_NULL " ) MesseageText = arcpy.GetMessages(1) if MesseageText =="": arcpy.AddMessage(" - Réparer : la géométrie est bonne : " ) else : arcpy.AddMessage(" - Réparer : était médiocre : " ) arcpy.AddMessage( " ") arcpy.AddMessage(str(MesseageText)) arcpy.AddMessage(" ") sauf exception comme e: arcpy.AddError(e.message) # imprime les messages d'erreur (c'est-à-dire que la géométrie est vide) arcpy.AddMessage(" ") arcpy.AddMessage("====== ================================================== ===========") #arcpy.GetMessages(0) # imprime tous les messages #arcpy.GetMessages(1) # imprime les messages d'avertissement #arcpy.GetMessages(2) # imprime les messages d'erreur


Affichage de l'historique d'exécution de l'outil

Chaque fois que vous exécutez un outil de géotraitement, les informations sur l'outil et ses paramètres sont enregistrées. Ces informations enregistrées sont appelées historique de géotraitement. Ces informations historiques sont très utiles pour déterminer comment les données ont été créées et peuvent être utilisées pour réexécuter un processus. Ces informations historiques sont stockées à trois endroits :

  1. La fenêtre Résultats. C'est le premier endroit où vous voulez rechercher un historique des outils que vous avez exécutés et de leurs résultats.
  2. Un fichier journal d'historique qui contient des informations sur chaque opération de géotraitement. Les informations contenues dans le fichier journal sont essentiellement les mêmes que celles trouvées dans la fenêtre Résultats.
  3. Les métadonnées des données de sortie d'un outil ou les données d'entrée de l'outil si l'outil modifie les données d'entrée.

Les informations sur les outils exécutés dans les modèles ne sont pas enregistrées dans le fichier journal d'historique. Cependant, les métadonnées sont mises à jour par des outils exécutés dans les modèles.

La journalisation peut affecter les performances de l'outil, en particulier dans les modèles qui utilisent des itérateurs. Par exemple, vous pouvez avoir un modèle qui exécute l'outil Ajouter des milliers de fois, ajoutant des entités à la même classe d'entités. Si la journalisation est activée, chaque itération du modèle met à jour les métadonnées de la classe d'entités, ce qui ralentit les performances du modèle.

Pour les outils de script et les scripts autonomes (scripts exécutés en dehors d'une application ArcGIS, à partir de l'invite du système d'exploitation, par exemple), la journalisation de l'historique est activée par défaut. Pour désactiver ou activer la journalisation de l'historique, utilisez la fonction SetLogHistory.


La sortie principale de cet outil est un fichier de rapport qui est écrit dans la fenêtre Résultats. Cliquez avec le bouton droit sur l'entrée des messages dans la fenêtre Résultats et sélectionnez Afficher pour afficher le rapport récapitulatif de la régression exploratoire dans la boîte de dialogue Message.

Si cet outil fait partie d'un outil de modèle personnalisé, les tables facultatives n'apparaîtront dans la fenêtre Résultats que si elles sont définies comme paramètres de modèle avant d'exécuter l'outil.

L'outil OLS produit également une classe d'entités en sortie et des tables facultatives avec des informations sur les coefficients et des diagnostics. Tous ces éléments sont accessibles depuis la fenêtre Résultats. La classe d'entités en sortie est automatiquement ajoutée à la table des matières, avec un schéma de rendu chaud/froid appliqué aux résidus du modèle. Une explication complète de chaque sortie est fournie dans Interprétation des résultats OLS.

Les résultats de la régression OLS ne sont dignes de confiance que si vos données et votre modèle de régression satisfont à toutes les hypothèses intrinsèquement requises par cette méthode. Consultez le tableau Problèmes de régression courants, conséquences et solutions dans Bases de l'analyse de régression pour vous assurer que votre modèle est correctement spécifié.

Les variables dépendantes et explicatives doivent être des champs numériques contenant une variété de valeurs. OLS ne peut pas résoudre lorsque les variables ont la même valeur (toutes les valeurs d'un champ sont 9,0, par exemple). Les méthodes de régression linéaire, telles que l'OLS, ne sont pas appropriées pour prédire les résultats binaires (par exemple, toutes les valeurs de la variable dépendante sont soit 1 soit 0).

Le champ ID unique relie les prédictions du modèle à chaque caractéristique. Par conséquent, les valeurs d'ID unique doivent être uniques pour chaque entité et doivent généralement être un champ permanent qui reste avec la classe d'entités. Si vous n'avez pas de champ ID unique, vous pouvez en créer un en ajoutant un nouveau champ d'entier à votre table de classe d'entités et en calculant les valeurs de champ pour qu'elles soient égales au champ FID/OID. Vous ne pouvez pas utiliser le champ FID/OID directement pour le paramètre ID unique.

Chaque fois qu'il existe une autocorrélation spatiale statistiquement significative des résidus de régression, le modèle OLS sera considéré comme mal spécifié. Par conséquent, les résultats de la régression OLS ne sont pas fiables. Assurez-vous d'exécuter l'outil d'autocorrélation spatiale sur vos résidus de régression pour évaluer ce problème potentiel. L'autocorrélation spatiale statistiquement significative des résidus de régression indique presque toujours qu'une ou plusieurs variables explicatives clés sont absentes du modèle.

Inspectez visuellement les surestimations et les sous-estimations évidentes dans vos résidus de régression pour voir si elles fournissent des indices sur les variables manquantes potentielles de votre modèle de régression. Il peut être utile d'exécuter une analyse des points chauds sur les résidus pour vous aider à visualiser le regroupement spatial des sur- et sous-estimations.

Lorsqu'une mauvaise spécification résulte d'une tentative de modélisation de variables non stationnaires à l'aide d'un modèle global (OLS est un modèle global), la régression pondérée géographiquement peut être utilisée pour améliorer les prévisions et mieux comprendre la non-stationnarité (variation régionale) inhérente à vos variables explicatives.

Lorsque le résultat d'un calcul est infini ou indéfini, la sortie pour les fichiers sans forme sera Null pour les fichiers de formes, la sortie sera -DBL_MAX (-1.7976931348623158e+308, par exemple).

Les diagnostics récapitulatifs du modèle sont écrits dans le rapport récapitulatif OLS et dans le tableau de sortie de diagnostic en option. Les deux incluent des diagnostics pour le critère d'information d'Akaike corrigé (AICc), le coefficient de détermination, la statistique Joint F, la statistique de Wald, la statistique de Breusch-Pagan de Koenker et la statistique de Jarque-Bera. Le tableau de diagnostic comprend également des valeurs AIC et Sigma-carré non corrigées.

Les tables facultatives de coefficients et de résultats de diagnostic, si elles existent déjà, seront écrasées lorsque l'option Écraser les résultats des opérations de géotraitement est cochée.

Cet outil créera éventuellement un rapport PDF résumant les résultats. Les fichiers PDF n'apparaissent pas automatiquement dans la fenêtre Catalogue. Pour afficher des fichiers PDF dans le catalogue, ouvrez l'application ArcCatalog, sélectionnez l'option de menu Personnaliser, cliquez sur Options ArcCatalog et sélectionnez l'onglet Types de fichiers. Cliquez sur le bouton Nouveau type et spécifiez PDF , comme indiqué ci-dessous, pour l'extension de fichier .

Sur les machines configurées avec les packages linguistiques ArcGIS pour l'arabe et d'autres langues écrites de droite à gauche, vous remarquerez peut-être des problèmes de texte manquant ou de mise en forme dans le fichier de rapport de sortie PDF . Ces problèmes sont abordés dans cet article.

Les couches de carte peuvent être utilisées pour définir la classe d'entités en entrée. Lorsque vous utilisez une couche avec une sélection, seules les entités sélectionnées sont incluses dans l'analyse.

Avertir:

Lorsque vous utilisez des fichiers de formes, gardez à l'esprit qu'ils ne peuvent pas stocker de valeurs nulles. Les outils ou autres procédures qui créent des fichiers de formes à partir d'entrées autres que des fichiers de formes peuvent stocker ou interpréter des valeurs nulles comme zéro. Dans certains cas, les valeurs NULL sont stockées sous forme de très grandes valeurs négatives dans les fichiers de formes. Cela peut conduire à des résultats inattendus. Voir Considérations relatives au géotraitement pour la sortie du fichier de formes pour plus d'informations.


3 réponses 3

Procédure de désactivation de la boîte de dialogue Windows Debugger se trouvant ici :

Cela empêche la boîte de dialogue de débogage qui oblige l'utilisateur à cliquer sur [Déboguer] ou [Annuler] si python plante.

Cependant, il y a maintenant une autre boîte de dialogue Windows qui dit "python.exe a cessé de fonctionner. Veuillez fermer le programme" avec un bouton [Fermer le programme]. Chut !

La boîte de dialogue à laquelle vous faites référence fait partie du rapport d'erreurs Windows.

La méthode exacte varie selon les éditions de Windows (instructions de Windows 7 ici, Google se fera un plaisir de fournir d'autres versions. ), mais si vous désactivez cette fonctionnalité de Windows, vos plantages se produiront beaucoup plus rapidement (!).

Il s'agit simplement d'un bug arcpy. Vous pouvez essayer d'éviter d'utiliser les étapes à l'origine du plantage, mais cela se produit généralement sous différents outils lorsqu'il est utilisé pour traiter une longue liste de données. La seule solution de contournement que j'ai trouvée est de faire en sorte que mon script enregistre sa progression en cours de route sur le disque. Ainsi, si vous redémarrez le processus, il saura où récupérer. Si vous désactivez ensuite le message du débogueur Windows en modifiant le registre (voir ci-dessous), vous pouvez alors simplement exécuter à plusieurs reprises le script dans cmd.exe jusqu'à ce qu'il termine l'intégralité du lot sans avoir à fermer le processus manuellement à chaque fois entre les deux.

Je sais que c'est une solution de contournement terrible, mais il est assez rare qu'une bibliothèque python tue l'interpréteur python.


7 réponses 7

  1. Déposez une zone d'image sur votre formulaire.
  2. Ajoutez le fichier .gif comme image dans la zone d'image
  3. Affichez la zone d'image lorsque vous chargez.

Éléments à prendre en considération :

Gifs animés :

Si vous cherchez des gifs animés vous pouvez les générer :

Une autre façon de faire :

Une autre façon que j'ai trouvée qui fonctionne assez bien est le contrôle de dialogue asynchrone que j'ai trouvé sur le projet de code

J'ai eu le même problème. Le formulaire entier (y compris gif) s'arrêtant de se redessiner à cause d'une longue opération en arrière-plan. Voici comment j'ai résolu cela.

J'ai simplement créé un autre fil pour être responsable de cette opération. Grâce à cette forme initiale continue le redessin sans problème (y compris mon gif qui fonctionne). ShowProgressGifDelegate et HideProgressGifDelegate sont des délégués sous forme qui définissent la propriété visible de pictureBox avec gif sur true/false.

Notez que sous Windows, vous n'utilisez traditionnellement pas de Gifs animés, mais de petites animations AVI : il existe un contrôle natif Windows juste pour les afficher. Il existe même des outils pour convertir des Gifs animés en AVI (et vice-versa).


whiptail est préinstallé sur Ubuntu et de nombreuses autres distributions et affichera les éléments de progression en plein écran (mais toujours basés sur un terminal).

dialog est un sur-ensemble de whiptail , donc cet exemple fonctionnera aussi bien avec les deux. Il fournit des éléments d'interface utilisateur plus avancés, il peut donc être utile si vous recherchez une interaction utilisateur telle que des sélecteurs de fichiers et des formulaires, mais il présente l'inconvénient de ne pas être préinstallé sur de nombreux systèmes.

Notez que la sortie du script est interprétée comme un pourcentage, vous devrez donc peut-être ajuster votre sortie en conséquence.

Whiptail et Dialog permettent également de modifier le texte à l'exécution via une syntaxe plutôt cryptique :

pv montre la progression d'un fichier ou d'un flux qui y est acheminé. Il ne peut cependant pas être (facilement ?) utilisé pour montrer la progression d'une opération personnalisée telle qu'une boucle. Il est conçu spécifiquement pour les flux.

Quelques exemples concrets où le pv est utile :

Je ne connais aucune commande qui donne des barres de progression d'une ligne dans le style de pv ou wget , mais il existe de nombreux scripts Bash/Perl/sed simples qui ajouteront cette fonctionnalité, comme d'autres l'ont partagé ici.


Méthode 2 : Nouvelle option de statut ajoutée à dd (GNU Coreutils 8.24+)

dd dans GNU Coreutils 8.24+ (Ubuntu 16.04 et versions ultérieures) a obtenu une nouvelle option d'état pour afficher la progression :

Exemple

Production

18 Mo/s en écriture, dd if=/dev/zero | pv | of=/dev/sdb donne

80 Mo/s, et tout simplement vieux dd if=/dev/zero of=/dev/sdb donne

550 Mo/s (proche de la vitesse d'écriture maximale du SSD). Tous avec bs=4096000 . &ndash Tedd Hansen 7 mai 16 à 21:18

Vous pouvez surveiller la progression de dd une fois qu'il est en cours d'exécution sans l'arrêter en utilisant la commande kill pour envoyer un signal au processus.

Après avoir démarré dd , ouvrez un autre terminal et entrez Soit:

Ou alors, si vous êtes sous BSD ou OS X :

Cela affichera la progression dans la fenêtre du terminal dd sans arrêter le processus (en imprimant dans son flux stderr). Par exemple:

Si vous souhaitez obtenir des mises à jour régulières de la progression de dd, saisissez :

watch sondera le processus dd toutes les -n secondes ( -n5 = 5 secondes) et rapportera sans l'arrêter.

Notez les guillemets simples appropriés dans les commandes ci-dessus.

Quelques exemples d'utilisations pratiques avec pv et moins de frappe ou plus de progrès que d'autres réponses :

Vous devrez d'abord installer pv , avec la commande :

Remarque : le premier échantillon est composé de 5 caractères en moins, puis dd if=/dev/urandom | pv | dd de=/dev/null .

Et mon préféré pour cloner un lecteur de disque (remplacez X par des lettres de lecteur):

Aussi pour m'archiver.

Par souci d'exhaustivité :

Version 8.24 de la Coreutils GNU inclut un patch pour dd introduisant un paramètre pour imprimer la progression.

Le commit introduisant ce changement a le commentaire :

jj : nouveau statut=progrès niveau pour imprimer les statistiques périodiquement

De nombreuses distributions, dont Ubuntu 16.04.2 LTS utiliser cette version.

Utilisez Ctrl + Shift + T pendant que dd est en cours d'exécution, et il affichera la progression (en octets):

Le mieux est d'utiliser http://dcfldd.sourceforge.net/ il est facile à installer via apt-get

Le statut de progression natif a été ajouté à dd.

La nouvelle version de Coreutils (8.24) ajoute un état de progression à l'outil dd :

Ouvrez un terminal et tapez ces commandes :

Vous verrez : Octets, secondes et vitesse (Octets/seconde).

Pour vérifier les versions de dd :

Si vous avez déjà démarré dd et si vous écrivez un fichier comme lors de la création d'une copie d'une clé USB sur le disque, vous pouvez utiliser la commande watch pour observer en permanence la taille du fichier de sortie pour voir les changements et estimer l'achèvement.

Pour voir uniquement la taille du fichier (vue h-humain) :

Le jj | pv | dd triad a fait que ma copie de 50 Go de vm prend 800 secondes, contre 260 secondes en utilisant simplement dd. Avec ce pipeline, au moins, pv n'a aucune idée de la taille du fichier d'entrée, il ne sera donc pas en mesure de vous dire à quel point vous en êtes, il n'y a donc aucun inconvénient à le faire comme suit - et vous obtenez un bel avantage de vitesse :

J'éviterais pv sur quoi que ce soit de gros, et (si vous utilisez Bash):

bg pour le mettre en arrière-plan. Notez que bg vous donnera une sortie comme [1] 6011 où le dernier nombre est un identifiant de processus. Alors faites:

alors que true do kill -USR1 process_id sleep 5 done

où process_id est l'identifiant du processus que vous avez observé. Appuyez sur Ctrl-C lorsque vous voyez quelque chose comme :

Edit : administrateur système stupide ! Automatisez votre vie, ne travaillez pas ! Si j'ai un long processus dd que je veux surveiller, voici un one-liner qui s'occupera de toute l'enchilada pour que vous mettiez tout cela sur une seule ligne :

Vous pouvez, bien sûr, le scripter, peut-être faire de $1 votre fichier d'entrée et $2 votre fichier de sortie. Ceci est laissé en exercice au lecteur. Notez que vous avez besoin d'un peu de sommeil avant le kill ou le kill peut mourir en essayant d'envoyer un signal à dd quand il n'est pas encore prêt. Ajustez vos sommeils comme vous le souhaitez (peut-être même supprimez complètement le deuxième sommeil).


Utiliser plusieurs langues

Si vous souhaitez produire du contenu dans une langue autre que celle fournie avec Word par défaut, vous devrez probablement l'acheter. Ouvrez le mot « Options » et cliquez sur « Langue ».

Choisissez la langue que vous souhaitez ajouter dans la liste déroulante, puis cliquez sur le bouton « Ajouter ». Lorsque vous ajoutez une langue, vous devrez l'activer, ce qui signifie que vous devrez l'activer dans le « Panneau de configuration ».

À partir de là, vous pouvez écrire dans la langue, mais Word ne s'affichera pas dans celle-ci, en d'autres termes, les menus et les systèmes d'aide apparaîtront toujours dans la langue par défaut. Pour profiter pleinement de l'expérience multilingue, vous devrez peut-être acheter un module linguistique auprès de Microsoft.

Pour voir quelles langues sont disponibles à l'achat et combien, cliquez sur "Non installé" et vous serez dirigé vers le site Web de Microsoft Office.

Si vous souhaitez ajouter des outils de vérification, tels que la vérification orthographique, la vérification grammaticale et/ou les info-bulles à l'écran, vous pourrez peut-être simplement les télécharger gratuitement.

Bien qu'il soit douteux que vous utilisiez Word en mode multilingue complet, il est bon de savoir comment vous pouvez affecter ces changements. De plus, la plupart des langues sont disponibles gratuitement à l'échelle du système, de sorte que la création d'un document dans une autre langue est à votre portée, gratuitement.


Macbook Pro bloqué après avoir entré mon mot de passe

Depuis 2 jours, je n'arrive pas à me connecter à mon MacBook Pro. Cela fonctionnait bien et soudainement, sans raison, après la dernière fermeture de mon mac, je ne parviens pas à me connecter. Le mac démarre bien et va à l'écran de connexion. Après avoir entré mon mot de passe, la barre de progression est bloquée à 70%-80% et parfois à 100%.

J'ai essayé de réinitialiser NVRAM et SCM mais cela n'a pas aidé. J'ai également essayé de suivre les étapes mentionnées dans le billet de blog de Justin Silver, mais cela n'a pas aidé non plus.

Comme mentionné dans l'article, j'ai déplacé tous les éléments tiers de /Volumes/Macintosh HD/Library/Extensions vers /Volumes/Macintosh HD/Library/ExtensionsDisabled . Comme je n'ai pas pu trouver de *.kext dans /System/Library/Extensions antérieur à 2016, je n'ai déplacé aucun *.kext de /System/Library/Extensions.

Mon MBP est mi-2012 et j'ai le dernier OS X, j'ai aussi 1 To de disque dur et 8 Go de RAM.

Je ne parviens pas à me connecter en utilisant SafeMode car FileVault est activé. J'ai même essayé de me connecter en mode utilisateur unique ou détaillé mais je n'y parviens pas.


A vos solutions :

(Toutes les citations proviennent de l'OP)

  • Amincissez la boîte de dialogue des options et n'y placez que les options les plus courantes (elle commence toujours petit, mais la plupart des options présentes sont là à la demande de l'utilisateur !)

Merci de ne pas trop maigrir ! vous pouvez certainement créer une page de paramètres "commune", mais nous, les utilisateurs expérimentés, détestons cela quand il n'y a aucun moyen de changer quelque chose

  • Se passer de la boîte de dialogue d'options et trouver d'autres endroits pour la personnalisation, comme une barre d'outils ou un ruban (anecdotique, mais j'ai trouvé que cela rend encore plus ennuyeux de trouver ce dont vous avez besoin)

C'est toujours une bonne pratique, mais en outre à la boîte de dialogue options/paramètres. Il devrait s'agir d'un guichet unique pour toutes les personnalisations du logiciel.

  • Utilisez les icônes d'aide pour des explications plus détaillées sur la fonctionnalité des options (personne ne les utiliserait sûrement ?)

Je pense que les gens les utiliseraient, et plus important encore, ce serait du texte supplémentaire qui pourrait correspondre au filtre en haut de la boîte de dialogue. Si l'option était "Exporter vers CSV" et que le texte d'aide était "Exporter des fichiers vers des fichiers délimités par des virgules pouvant être ouverts dans Microsoft Excel", cela permet aux requêtes "csv" et "excel" de correspondre à cette option.

  • Créez plus de catégories pour vous débarrasser d'une catégorie "Avancé" ou "Général" (vous vous retrouvez alors avec tout un tas de catégories dans lesquelles vous ne pouvez pas vraiment naviguer, dont certaines n'ont qu'une seule option.)

Oui, dans une certaine mesure - pas de catégories avec une option, mais en supprimant "Général" et "Avancer" et en organisant une arborescence (s'il y en a trop pour une simple liste comme Firefox ou votre exemple Word).

Cause principale : interface utilisateur de pilotage de la mise en œuvre

L'idée même d'une boîte de dialogue Options consolidée unique semble être une conséquence des programmes ayant des fichiers de configuration. La fonction Options lirait le fichier de configuration, le présenterait à l'utilisateur dans une boîte de dialogue pour modification, puis enregistrerait les modifications dans le fichier de configuration. Peut-être que d'autres programmes font la même chose, en lisant et en écrivant uniquement dans le Registre. La mise en œuvre, plutôt que les tâches de l'utilisateur, détermine la conception de l'interface utilisateur, ce qui est souvent une mauvaise chose. Cela le rend pratique pour le programmeur, mais pas pour l'utilisateur.

À l'exception possible du moment où un utilisateur installe un programme pour la première fois, un utilisateur ne pense généralement pas : « Aujourd'hui, je vais changer mes options. » Ce qui se passe, c'est que le programme fait quelque chose de spécifique qui n'est pas ce que l'utilisateur veut (par exemple, coller par défaut pour correspondre au format source). Ainsi, les utilisateurs (s'ils sont suffisamment avertis) pensent « Peut-être qu'il y a une option pour cela » et se lancent dans un safari majeur pour le traquer dans une jungle d'options, en supposant qu'il existe. Pas étonnant que ça ne marche pas.

Adressage de la découvrabilité : options à proximité des fonctionnalités affectées

La solution est de mettre les options avec la fonctionnalité qu'elle affecte. N'ayez pas toutes les options dans une seule boîte de dialogue massive. Distribuez-les dans vos menus et boîtes de dialogue. Par exemple, pour modifier le collage par défaut, le menu Edition a un élément de menu Options de collage sous l'élément de menu Coller. Options de collage ouvre une boîte de dialogue simple pour sélectionner le comportement de collage par défaut. Ou il existe une boîte de dialogue Collage spécial qui inclut « Définir ce paramètre par défaut » afin que lorsque les utilisateurs sélectionnent un comportement de collage spécial pour une instance particulière, ils peuvent également le rendre permanent. Cela améliore la découvrabilité. Ou peut-être qu'il y a simplement des "Options d'édition" s'il y a aussi des options pour Copier, Annuler et Supprimer (sinon, votre menu a presque autant d'éléments de menu "Options" que tous les autres plus importants). Lorsque l'utilisateur exécute la commande dans son menu ou son onglet de ruban, il voit qu'il existe des options pour cela. Cela réduit la charge de travail, car les utilisateurs n'ont pas à rechercher parmi des millions de groupes d'options non pertinents et organisés de manière douteuse pour trouver celle dont ils ont besoin. Les options sont organisées exactement comme (avec) les fonctionnalités associées, que l'utilisateur connaît déjà ou ne pourrait pas utiliser les fonctionnalités.

Les options par définition sont préservées entre les sessions, elles sont donc plus appropriées pour les choses qui sont très rarement modifiées. Pour cette raison, il est important de ne pas encombrer votre interface utilisateur avec des éléments de menu Options et des boutons de commande, car ils gêneront ce que les utilisateurs recherchent habituellement. Vous ne devriez probablement pas avoir plus d'un bouton Options par boîte de dialogue et un élément de menu Options par menu ou onglet de ruban. Ce n'est peut-être pas aussi strict qu'il y paraît. En parcourant les options de MS Word dans votre exemple (qui est parmi les plus complets), je vois qu'il y aurait :

Un élément de menu Options Couper/Copier/Coller sur l'onglet Accueil.

Un élément de menu Options des marques de format dans l'onglet Affichage.

Un élément de menu Options de vérification linguistique dans l'onglet Révision.

Les autres options sont soit placées sous un bouton Options dans une boîte de dialogue/page (comme les options Enregistrer et Imprimer), soit des options qui ne sont pas associées à un menu ou à une boîte de dialogue, elles doivent donc être gérées différemment (voir la section suivante paragraphe).

Adressage des emplacements incohérents : avoir un menu de préférences

Certaines options n'auront pas de menu ou de boîte de dialogue associé, comme "sélectionner le mot entier" dans votre exemple. Vous avez donc toujours besoin d'une sorte d'endroit centralisé pour les placer. Cependant, elles sont inférieures au nombre total d'options, ce qui les rend plus faciles à trouver, en supposant qu'il n'est pas préférable d'avoir les mêmes options à la fois à proximité de leur caractéristique associée et dans un emplacement centralisé pour maximiser leur découvrabilité.

Vous avez raison de dire qu'il n'y a maintenant pas de place standard pour eux. Microsoft a eu « Outils » comme standard pendant un certain temps, mais « Outils » est comme « Avancé » – un tiroir à ordures contenant des éléments qui ne correspondent nulle part ailleurs. La norme d'Apple consistant à mettre des options dans le menu de l'application (le menu avec le nom du programme) est en quelque sorte logique compte tenu du paragraphe ci-dessus, car ce sont des options de l'ensemble du programme, pas seulement une fonctionnalité spécifique.

Cependant, mon conseil est d'avoir un menu Préférences au niveau supérieur (un menu déroulant ou un onglet de ruban). La place des options est leur propre place, pas sous un autre menu ou onglet. Cela maximise la découvrabilité : les utilisateurs voient « Préférences » (ou « Options » ou peut-être « Personnaliser », selon vos utilisateurs) chaque fois qu'ils ouvrent l'application. Peu importe si l'utilisateur s'attend à ce que les options soient sous Outils ou Modifier ou dans le menu de l'application. Ils le voient immédiatement en haut et ne prennent pas la peine de regarder ailleurs.

L'espace ou l'encombrement n'est généralement pas un problème, en particulier pour les barres de menus. Après Fichier, Modifier, Afficher et Aide, la plupart des applications n'ont pas grand-chose d'autre. S'il n'y a que quelques options (huit ou moins), le menu Préférences a des éléments de menu basculants pour les définir directement - il n'y a pas de boîte de dialogue. S'il y a beaucoup d'options, divisez-les en boîtes de dialogue distinctes et accédez à chacune avec un élément de menu distinct (plutôt que d'avoir des onglets séparés dans une boîte de dialogue). Pour les nombres d'options intermédiaires, ayez un mélange d'éléments de menu à bascule et une boîte de dialogue ou deux.

Traiter les mauvaises explications : Aide active

En plus, ou peut-être comme une meilleure alternative, un menu Préférences, donnez à l'Aide la possibilité de modifier les préférences. Prenez la « sélection de paragraphe intelligente » dans votre exemple (quoi que ce soit). Un utilisateur ne va pas penser : « Cette sélection de paragraphes intelligents ! J'aimerais pouvoir l'éteindre !" Ils se disent : "Cette sélection fait quelque chose de bizarre, pourquoi ?" Ils se rendent donc naturellement sur Aide pour en savoir plus. Si l'index et la recherche sont corrects et que le contenu est clairement écrit, ils découvrent cette sélection de paragraphes intelligente et son fonctionnement. Peut-être qu'une fois qu'ils l'auront compris, ils voudront le garder. Cependant, s'ils ne le font pas, alors l'aide devrait fournir les moyens de le désactiver juste là dans l'aide. Il ne dirige pas l'utilisateur à travers plusieurs étapes dans une boîte de dialogue Options pour effectuer cela. Ce n'est pas comme si les utilisateurs devaient apprendre cela - ils ne vont l'éteindre qu'une seule fois, puis l'oublier. Qu'ils le fassent là.

Mettre des options dans l'aide signifie que les recherches n'ont pas à correspondre exactement au nom des options - cela peut correspondre à n'importe quelle partie de l'explication. Ils peuvent également correspondre à n'importe quel synonyme, en supposant que votre recherche le permette. Les utilisateurs obtiennent toute l'explication, afin qu'ils puissent mieux déterminer si c'est l'option qu'ils veulent ou non.


Voir la vidéo: How to Install ArcGis