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.