Suggested order of reading:

  1. Traits http://code.enthought.com/projects/traits/docs/html/index.html
  2. TraitsUI http://code.enthought.com/projects/traits/docs/html/index.html
  3. Developping graphical applications with TraitsUI
  4. Mayavi http://code.enthought.com/projects/mayavi/docs/development/html/mayavi/

Facts about traits:

The main features of Traits' design:

  1. Initialization: A trait has a default value, which is automatically set as the initial value of an attribute, before its first use in a program.
  2. Validation: A trait attribute is explicitly typed. The type of a trait-based attribute is evident in the code, and only values that meet a programmer-specified set of criteria (i.e., the trait definition) can be assigned to that attribute. Note that the default value need not meet the criteria defined for assignment of values. Traits 3.0 also supports defining and using abstract interfaces, as well as adapters between interfaces.
  3. Deferral: The value of a trait attribute can be contained either in the defining object or in another object that is deferred to by the trait.
  4. Notification: Setting the value of a trait attribute can notify other parts of the program that the value has changed.
  5. Visualization: User interfaces that allow a user to interactively modify the values of trait attributes can be automatically constructed using the traits’ definitions. This feature requires that a supported GUI toolkit be installed. However, if this feature is not used, the Traits package does not otherwise require GUI support. For details on the visualization features of Traits, see the Traits UI User Guide.