TraitsUI: Traits-capable windowing framework
Latest commit f29b964 Feb 15, 2017 @corranwebster corranwebster committed on GitHub Merge pull request #345 from enthought/group-runtimes-in-travis
Group builds in travis
Failed to load latest commit information.
docs Remove references to '-toolkit' option. Sep 1, 2016
examples Specify that Spring in VGroup doesn't work on Wx Dec 15, 2016
integrationtests Automated fixups of examples and integration tests Jun 21, 2016
traitsui Fix regression from removing old-style signals & slots. Feb 14, 2017
.coveragerc add a coveragerc Jul 1, 2015
.gitignore Add to the .gitignore file Aug 30, 2015
.travis.yml rework build matrix Feb 13, 2017
CHANGES.txt update Changelog after new merge Apr 18, 2016
LICENSE.txt fixed imports Apr 20, 2011 Fix image for README. Aug 3, 2015
README.rst More documentation. Dec 16, 2016
README_example.png Fix image for README. Aug 3, 2015
TODO.txt fixed imports Apr 20, 2011
appveyor-install.cmd Fix pyside version to 1.2.2 for appveyor Oct 27, 2015
appveyor-test.cmd run the qt specific tests on all setups Aug 19, 2015
appveyor.yml Fix appveyor pip install command. Aug 18, 2016
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
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
setup.cfg FIX: files setting the toolkit crashed nosetest Jan 18, 2012 Autopep8 auxilliary files. Jun 17, 2016 produce process specific coverage Feb 10, 2017
tox-requirements.txt tox tests with the release of traits on pypi Apr 15, 2016
tox.ini improve tox.ini Apr 18, 2016 install coverage in the default env Feb 10, 2017


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.

The following GUI backends are supported:

  • PyQt
  • wxPython
  • PySide

Warning: In TraitsUI version 5.0 the default GUI backend was changed from wx to qt4.


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')),
    buttons=['OK', 'Cancel'],


which creates a GUI which looks like this:


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

along with one of the GUI backends.

Running the Test Suite

To run the test suite, install `Invoke`_ and `EDM`_ and follow the instructions in In particular:

> invoke test_all

will run tests in all supported environments automatically.