5 votos

ToolValidator no hace nada

He creado una simple herramienta script que tiene un único parámetro de tipo "String". He escrito la validación de la herramienta para desactivar el campo de entrada (simplemente tratando de aprender la validación de la herramienta). El código del validador es el siguiente:

class ToolValidator:

  def __init__(self):
    import arcpy
    self.params = arcpy.GetParameterInfo()

  def initializeParameters(self):
    self.params[0].Enabled = 0
    return

  def updateParameters(self):
    return

  def updateMessages(self):
    return

Desgraciadamente, cuando abro la herramienta, el campo no está deshabilitado (como espero que sea). ¿Alguna idea de lo que me falta?

SOLUCIÓN: Por si no queda claro en los hilos de abajo. La solución al problema fue cambiar Enabled por enabled, que es un cambio de caso entre ArcGIS 9.3 y 10.0. Esta capitalización funciona correctamente tanto en el método initializeParameters como en el método updateMessages.

4voto

Mike Wills Puntos 6132

Pude hacerlo funcionar utilizando enabled en lugar de Enabled .

Aquí hay un enlace que enumera todas las propiedades params disponibles (muestran lowerCamelCase para todas las propiedades): Programación de una clase ToolValidator

0 votos

Acabo de ver el comentario de +Jason Scheirer.

4voto

Shuo Ran Puntos 21

Creo que lo estás poniendo en el lugar equivocado. Así es como lo he hecho anteriormente.

def updateMessages(self):
    self.params[0].enabled = False

0 votos

Gracias por la respuesta, pero esto tampoco ha funcionado.

4 votos

Ni siquiera cuando se cambia de Enabled a enabled ¿(nota del caso)?

0 votos

+1, acaba de notar que también está usando las minúsculas enabled .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X