ANN: wxPython

Robin Dunn robin at
Fri Mar 23 20:47:53 CET 2007


The release of wxPython is now available for download at  This release includes a number of
bug fixes and also some new enhancements, including updates to the
XRCed tool and the new InspectionTool.

Source code is available, as well as binaries for both Python 2.4 and
2.5, for Windows and Mac, as well some pacakges for various Linux
distributions.  A summary of changes is listed below and also at

What is wxPython?

wxPython is a GUI toolkit for the Python programming language. It
allows Python programmers to create programs with a robust, highly
functional graphical user interface, simply and easily. It is
implemented as a Python extension module that wraps the GUI components
of the popular wxWidgets cross platform library, which is written in

wxPython is a cross-platform toolkit. This means that the same program
will usually run on multiple platforms without modifications.
Currently supported platforms are 32-bit Microsoft Windows, most Linux
or other Unix-like systems using GTK2, and Mac OS X 10.3+, in most
cases the native widgets are used on each platform to provide a 100%
native look and feel for the application.

Changes in

Added wx.ToolBar.SetToolNormalBitmap and SetToolDisabledBitmap
methods.  (Keep in mind however that the disabled bitmap is currently
generated on the fly by most native toolbar widgets, so this
SetToolDisabledBitmap method won't have any affect on them...)

Refactored the inspection tool such that it can be used as a wx.App
mix-in class as it was used before (with the wx.lib.mixins.inspect
module) and also as a non mix-in tool (using 

Add wx.lib.mixins.treemixin from Frank Niessink.

Added the wx.SizerFlags class, and also added AddF, InsertF and
PrependF methods to wx.Sizer.  The wxSizerFlags class provides a
convienient and easier to read way to add items to a sizer.  It was
added as a new set of methods of the wx.Sizer class so as to not
disturb existing code.  For example, instead of writing::

     sizer.Add(ctrl, 0, wx.EXPAND | wx.ALL, 10)

you can now write::

     sizer.AddF(ctrl, wx.SizerFlags().Expand().Border(wx.ALL,10))

Will Sadkin provided a patch for the wx.lib.masked package that fixes
its support for using the navigation keys on the numeric keypad.

wx.lib.plot: patch #1663937 to allow user to turn off scientific
notation on plot.

wxGTK: Most of the remaining TODOs for the wx.GraphicsContext on wxGTK
have been done.  This includes implementations for GetTextExtent,
Clip, DrawBitmap, fixing the drawing position of text to be at the
upper left corner instead of the baseline, etc.

wx.lib.customtreectrl patches from Andrea:

   1. ExpandAll has been renamed as ExpandAllChildren, and the new
      ExpandAll now takes no input arguments (consistent with

   2. ctstyle keyword is now defaulted to 0: every style related to
      CustomTreeCtrl and the underlying wx.PyScrolledWindow should be
      declared using the keyword "style" only. For backward
      compatibility, ctstyle continues to work as I merged ctstyle and
      style in the __init__ method.

   3. GetClassDefaultAttributes is now a classmethod.

   4. UnselectAll bug fixed.

Renamed the wx.lib.inspect and wx.lib.mixins.inspect modules to
inspection, in order to avoid conflicts with the inspect module in the
standard Python library.

Lots of changes to XRCed from Roman Rolinsky:

   * Preferences for default "sizeritem" parameters for new panels and
     controls can be configured ("File">"Preferences...").

   * Implemented comment object for including simple one-line comments
     and comment directives as tree nodes. No validation is performed
     for a valid XML string so comments must not contain "-->". Comment
     directive is a special comment starting with '%' character,
     followed by a line of python code. It is executed using 'exec'
     when the resource file is opened. This is useful to import plugin
     modules containing custom handlers which are specific to the
     resource file, hovewer this is of course a security hole if you
     use foreign XRC files. A warning is displayed if the preference
     option 'ask' is selected (by default).

   * Added support for custom controls and plugin modules. Refer to
     this wxPythonWiki for the details:

   * Tool panel sections can be collapsed/expanded by clicking on the
     label of a tool group.

   * Some undo/redo and other fixes.

   * Fixes for wxMSW (notebook highlighting, control sizes, tree

   * Notebook page highlighting fix. Highlight resizes when the window
     is resized. ParamUnit spin button detects event handler re-entry
     (wxGTK probably has a bug in wxSpinButton with repeated events).

   * Fix for dealing with empty 'growable' property, using MiniFrame
     for properties panel, the panel is restored together with the main

Robin Dunn
Software Craftsman  Java give you jitters?  Relax with wxPython!

More information about the Python-announce-list mailing list