TraitsUI: Traits-capable windowing framework
Latest commit 512d241 Nov 1, 2017 @corranwebster corranwebster Merge pull request #401 from enthought/enh/item-label-enable-when-sup…

Item label enable when support
Failed to load latest commit information.
docs Merge branch 'master' into enh/wx-themes-must-die Oct 10, 2017
examples Remove theming from scrubber editor example. Feb 10, 2017
integrationtests Automated fixups of examples and integration tests Jun 21, 2016
traitsui Merge pull request #401 from enthought/enh/item-label-enable-when-sup… Nov 1, 2017
.coveragerc add a coveragerc Jul 1, 2015
.gitignore Add to the .gitignore file Aug 30, 2015
.travis.yml fix command Jun 16, 2017
CHANGES.txt update Changelog after new merge Apr 18, 2016
LICENSE.txt fixed imports Apr 20, 2011 no need to exclude pyc they should not be there anyway Jun 10, 2017
README.rst Fix target of Appveyor badge Jun 19, 2017
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 add comment to test Jun 16, 2017
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 Remove spaces. Oct 12, 2017
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 Autopep8 auxilliary files. Jun 17, 2016
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.

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.