wxPython object-oriented and property-oriented controls for use with Python 2.2+

About the Package

The wxPython Properties Distribution was originally an umbrella project for BasicProperty/BasicTypes, the PyTable RDBMS Wrapper, and the wxoo object-oriented editing control set.  BasicProperty/BasicTypes and PyTable are now their own projects with no necessary connection to wxPython (they are used in web environments as well), while wxoo, the wxPython-specific element of the distribution continues to be distributed here.

The purpose behind wxoo is to provide a GUI framework and controls for interacting with Python domain-specific "model" objects, rather than low-level identifiers and the like in such a way that much of an application's GUI can be auto-generated from the domain model without custom programming.

The system was originally created by refactoring code from a commercial small-office room-scheduling application.  It is released under a BSD license, which allows for inclusion in both commercial and non-commercial projects (with some very minimal conditions regarding attribution and the like).


wxoo is a collection of a number of interdependent technologies to help make wxPython programming more object-oriented from a Python programmer's point of view.  In particular:

  • Framework for creating composable value-editing controls
  • Framework for creating parsed-text controls based on BasicTypes coercion
  • Support classes for:
    • Implementing custom dragging behaviour for canvas-like controls
    • Selection-set tracking for canvas-like controls
    • Tracking a grid control's selection set
    • Event-based drag-and-drop operations
  • Controls for editing individual BasicProperty properties of objects (including PyTable fields of database rows)
  • Controls for choosing from a set of objects
  • List-of-objects viewer and editor
  • OO-spin control (w/ integer, hex or binary format)
  • Window allowing a sub-window to act as a dragging handle for it's top-level window (this allows for creating custom title-bars and the like)
  • A sub-package providing (the beginnings of) a customisable UI system
  • Grid-based BasicProperty property-table editors
    • Can edit, for example PyTable DBRow objects
    • Wrapper for using generic controls as grid controls
    • Wrapper for transient dialog-based grid-editing controls


You will need to install wxPython and the BasicTypes/BasicProperty packages, as well as, optionally, the PyTable package. Installation is via Python's distutils installation mechanism.  Unpack the source distribution into a temporary directory and run:

setup.py install

to install.


Most of the documentation for the system is in the auto-generated pydoc collection.


Bug reports and feature requests should use the SourceForge project page.  General questions are best answered on the wxPython-users mailing list.

A SourceForge Open-Source Project:
SourceForge Logo