TraitsUI: Traits-capable windowing framework
Clone or download
corranwebster Merge pull request #482 from enthought/fix/python3
BUG: Fix a Python 2-ism in the TreeEditor code.
Latest commit 8d3cd00 Nov 12, 2018
Failed to load latest commit information.
docs Use default favicon. Apr 13, 2018
examples ENH: Add demo for tabular editor with context menu Jun 5, 2018
integrationtests Fixes and Python 3 compatibility for integration tests. Mar 12, 2018
traitsui BUG: typo Nov 9, 2018
.coveragerc add a coveragerc Jul 1, 2015
.gitignore Add to the .gitignore file Aug 30, 2015
.travis.yml Add test back to matrix. Apr 9, 2018
CHANGES.txt Fix contributor name in changelog. Apr 13, 2018
LICENSE.txt Update license copyright dates. Apr 12, 2018 Pull common UI panel code into a base class. Aug 17, 2017
README.rst fix range editor in readme Sep 1, 2018
README_example.png Fix image for README. Aug 3, 2015
TODO.txt fixed imports Apr 20, 2011
appveyor-clean-cache.txt update appveyor build config Jun 10, 2017
appveyor-run.cmd make sure we exit on failure Jun 16, 2017
appveyor.yml Update appveyor.yml Feb 23, 2018
checksums use a checksum do the wxpython download Jul 1, 2015
ci-src-requirements.txt Rename file. Dec 14, 2016
codecov.yml Fix syntax issues Dec 17, 2016
doc-requirements.txt add a doc-requirements.txt file Apr 22, 2016 Better API docs plus other documentation improvements. Mar 16, 2018
image_LICENSE.txt updating image locations in license file Jun 7, 2011
image_LICENSE_Eclipse.txt Fix #87: Fix non-ascii text files and remove unused directories. Nov 25, 2012
image_LICENSE_Nuvola.txt converting to unix line endings and removing excess whitespace Jan 28, 2011 revert changes Jun 6, 2017 revert changes Jun 6, 2017
install-edm-windows.cmd rework and sync ci builds May 26, 2017
setup.cfg FIX: files setting the toolkit crashed nosetest Jan 18, 2012 HTTPS not enabled for external github pages. Apr 13, 2018
tox-requirements.txt tox tests with the release of traits on pypi Apr 15, 2016
tox.ini improve tox.ini Apr 18, 2016


TraitsUI: Traits-capable windowing framework

The TraitsUI project contains a toolkit-independent GUI abstraction layer, which is used to support the "visualization" features of the Traits package. Thus, you can write model in terms of the Traits API and specify a GUI in terms of the primitives supplied by TraitsUI (views, items, editors, etc.), and let TraitsUI and your selected toolkit and back-end 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)

we can use TraitsUI to specify a and display a GUI view:

from traitsui.api import Item, RangeEditor, View

person_view = View(
    Item('age', editor=RangeEditor(mode='spinner', low=0, high=150)),
    buttons=['OK', 'Cancel'],


which creates a GUI which looks like this:

Important Links


If you want to run traitsui, you must also install:

You will also need one of the following backends:

  • PyQt
  • wxPython
  • PySide
  • 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 .

Running the Test Suite

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 In particular:

> python test_all

will run tests in all supported environments automatically.