Enthought Home home  |  www.enthought.com  |  www.scipy.org  |  installation
Enthought Projects


If you want to display Traits-based user interfaces, you need, in addition to the Traits project:

  • The TraitsGUI project
  • A Python GUI toolkit, either wxPython or PyQt
  • A "backend" connector, either TraitsBackendWX or TraitsBackendQt

The TraitsGUI project contains a toolkit-independent GUI abstraction layer (known as Pyface), which is used to support the "visualization" features of the Traits package. Thus, you can write code in terms of the Traits API (view, items, editors, etc.), and let TraitsGUI and your selected toolkit and backend take care of the details of displaying them.


Pyface enables programmers to interact with generic GUI objects, such as an "MDI Application Window", rather than with raw GUI widgets. (Pyface is named by analogy to JFace in Java.) Traits uses Pyface to implement views and editors for displaying and editing Traits-based objects.

Toolkit Backends

Traits and Pyface define APIs that are independent of any GUI toolkit. However, in order to actually produce user interfaces with them, you must install a supported Python-based GUI toolkit and the appropriate toolkit-specific backend project. Conversely, if you wish to use Traits without a UI, a "null" backend is automatically used in the absence of a real backend.

Currently, the supported GUI toolkits are wxPython and PyQt. While both toolkits funtion with Traits, integration with wxPython is currently more complete. All future development, however, will focus on supporting PyQt.

NOTE: Enthought.pyface.ui.qt4 and Enthought.traits.ui.qt4 are licensed under the Gnu Public License. If you develop software using Qt, you must select an appropriate license from Nokia, the publishers of Qt.