The TraitsUI project provides a toolkit-independent GUI abstraction layer, which is used to support the "visualization" features of the Traits package. You can write a model using the Traits API and specify a GUI using the TraitsUI API (views, items, editors, etc.), and let TraitsUI and your selected toolkit back-end (Qt or Wx) take care of the details of displaying them.
Given a Traits model like the following:
from traits.api import HasTraits, Str, Range, Enum
class Person(HasTraits):
name = Str('Jane Doe')
age = Range(low=0)
gender = Enum('female', 'male')
person = Person(age=30)
And using TraitsUI to specify and display a GUI view:
from traitsui.api import Item, RangeEditor, View
person_view = View(
Item('name'),
Item('gender'),
Item('age', editor=RangeEditor(mode='spinner', low=0, high=150)),
buttons=['OK', 'Cancel'],
resizable=True,
)
person.configure_traits(view=person_view)
It creates a GUI which looks like this:
- Website and Documentation: http://docs.enthought.com/traitsui
- User Manual http://docs.enthought.com/traitsui/traitsui_user_manual
- Tutorial http://docs.enthought.com/traitsui/tutorials
- API Documentation http://docs.enthought.com/traitsui/api
- Source code repository: https://github.com/enthought/traitsui
- Issue tracker: https://github.com/enthought/traitsui/issues
- Download releases: https://pypi.python.org/pypi/traitsui
- Mailing list: https://groups.google.com/forum/#!forum/ets-users
If you want to run traitsui, you must also install:
You will also need one of the following backends:
- wxPython
- PySide2
- PyQt5
Backends have additional dependencies and there are optional dependencies on NumPy and Pandas for some editors.
TraitsUI along with all dependencies can be installed in a straightforward way using the Enthought Deployment Manager, pip
or other package managers.
To run the test suite, you will need to install Git and EDM as well as have a Python environment which has install Click available. You can then follow the instructions in etstool.py
. In particular:
> python etstool.py test_all
will run tests in all supported environments automatically.