wxPython 4.0.0a3

Robin Dunn robin at alldunn.com
Sun Jun 4 23:17:05 EDT 2017

Announcing wxPython 4.0.0a3



Fixed a few cases where the GIL was not acquired before building
tuples of values. The problems associated with this (hangs or crashes)
were sporadic and seemingly random, and did not appear until there was
a background thread that was very busy. Running under a debug build of
Python revealed the problem almost immediately. Yay Python!

Return an integer value from wx.DC.GetHandle instead of a wrapped
voidptr object, similar to how it is done for wx.Window.GetHandle.

Make wx.TreeItemID hashable, with meaningful hash value and equality
operators, so it can be used as a dictionary key in Py3.

Fixed crash in wx.grid.GridTable.GetAttr, and potentially other cases
of classes derived from wx.RefCounter.

Add ShowPage and IsRunning methods to wx.adv.Wizard.

Fixed various GTK specific bugs and other cleanup in wx.lib.agw.aui.

Updated to SIP 4.19.2

Restored builders for Python 3.4 to the buildbot.

Restore the wrappers for GetPaperSize and SetPaperSize to

Fix crashing problem when a wx.TreeItemId was compared with None.

Fix for missing checkbox images in CheckListCtrlMixin on Linux and

Fix another crashing problem in propgrid, and a few other propgrid
issues too.

The release version of the documentation can now be found at
https://docs.wxPython.org/ The documentation created during the
snapshot builds is still located at https://wxPython.org/Phoenix/docs/html

What is wxPython?

wxPython is a cross-platform 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 set of Python extension modules that
wrap the GUI components of the popular wxWidgets cross platform
library, which is written in C++. Supported platforms are Microsoft
Windows, Mac OS X and macOS, and Linux or other unix-like systems with
GTK2 or GTK3 libraries. In most cases the native widgets are used on
each platform to provide a 100% native look and feel for the

What is wxPython Phoenix?

wxPython's Project Phoenix is a new from-the-ground-up implementation
of wxPython, created with the intent of making wxPython “better,
stronger, faster than he was before.” In other words, this new
implementation is focused on improving speed, maintainability and
extensibility of wxPython, as well as removing most of the cruft that
had accumulated over the long life of Classic wxPython.

The project has been in development off and on, mostly behind the
scenes, for many years. For the past few years automated snapshot
builds have been available for those adventurous enough to try it, and
many people eventually started using the snapshots in their projects,
even for production releases.  While there are still some things on
the periphery that need to be completed, the core of the new wxPython
extension modules which wrap the wxWidgets code has been stable for a
long time now.

Due to some things being cleaned up, reorganized, simplified and
dehackified wxPython Phoenix is not completely backwards compatible
with wxPython Classic.  This is intended. In general, however, the API
differences tend to be minor and some applications can use Phoenix
with slight, or even no modifications.  In some other cases the
correct way to do things was also available in Classic and it's only
the wrong way that has been removed from Phoenix.  For more
information there is a Migration Guide document available at:

The new wxPython API reference documentation, including all
Python-specific additions and customizations, and docs for the wx.lib
package, is located at: https://docs.wxpython.org/

Robin Dunn
Software Craftsman

More information about the Python-announce-list mailing list