Skip to content
TraitsUI: Traits-capable windowing framework
Failed to load latest commit information.
docs Merge branch 'master' into enh/change-default-backend
examples Fix some file handling at @itziakos's suggestion.
integrationtests ENH: Use a common, backend-independent implementation of ColorColumn.
traitsui Use provisional toolkit context manager.
.coveragerc add a coveragerc
.gitignore Add to the .gitignore file
.travis.yml fix-typo
CHANGES.txt Merge branch 'master' into enh/change-default-backend
LICENSE.txt fixed imports Fix image for README.
README.rst add badges
README_example.png Fix image for README.
TODO.txt fixed imports
appveyor-install.cmd Fix pyside version to 1.2.2 for appveyor
appveyor-test.cmd run the qt specific tests on all setups
appveyor.yml add appveyor setup files fix wheel name
checksums use a checksum do the wxpython download
image_LICENSE.txt updating image locations in license file
image_LICENSE_Eclipse.txt Fix #87: Fix non-ascii text files and remove unused directories.
image_LICENSE_Nuvola.txt converting to unix line endings and removing excess whitespace
setup.cfg FIX: files setting the toolkit crashed nosetest Post release version bump.
travis-ci-requirements.txt cleanup requirements for travis-ci


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:

  • wxPython
  • PyQt
  • PySide

Warning: In TraitsUI version 5.0 the default GUI backend will change 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:

Something went wrong with that request. Please try again.