wxPython News

wxPython 4.1.0 Released

"Escaping the Quarantine"

wxPython 4.1.0 is now available at PyPI, with some additional files at Extras

Starting with this release wxPython has switched to tracking the wxWidgets master branch (version 3.1.x) for the wxWidgets source code, which wxPython is built upon, and which is included in the wxPython source archives.

This will be the last release to include binaries for Python 2.7. The code will likely still compile and be compatible with Python 2.7 for some time, but no effort will be put into keeping it that way.

New and improved in this release:

  • Add a sample for wx.Font.AddPrivateFont to the demo.

  • Added wrappers for the OSXEnableAutomaticQuoteSubstitution, OSXEnableAutomaticDashSubstitution, and OSXDisableAllSmartSubstitutions methods in wx.TextCtrl. Also added OSXEnableAutomaticTabbing in wx.App.

  • Added wx.ColourDialogEvent, wx.DCTextBgColourChanger, wx.DCTextBgModeChanger, wx.grid.GridCellDateRenderer, wx.grid.GridCellDateEditor, wx.SystemAppearance, etc.

  • Many of the deprecated items in wxWidgets and wxPython are being or have been removed. Be sure to test your code in a recent 4.0.x release with warnings enabled so you can see which class, method or function calls you need to change.

  • Bug fixes in wx.lib.calendar: key navigation across month boundaries is now possible; key navigation now sets the date and fires the EVT_CALENDAR event; setter APIs now set the date correctly #1230.

  • Switch to using a wx.Overlay in the Widget Inspection Tool to highlight widgets when running on a GTK3 port.

  • Fixed issue in wx.lib.agw.customtreectrl where the label editor could remain stuck forever #1235.

  • Grafted on a EnableSystemTheme method to the classes which support it. This can be used to disable the default system theme on Windows for native widgets like wx.ListCtrl, wx.TreeCtrl and wx.dataview.DataViewCtrl. It has no effect on the other platforms.

  • The wx.WS_EX_VALIDATE_RECURSIVELY extended style flag is obsolete, as it is now the default (and only) behavior. The style flag has been added back into wxPython for compatibility, but with a zero value. You can just stop using it in your code with no change in behavior. #1278

  • Fix a sometimes crash when using a wx.Overlay by letting the wx.DCOverlay hold a reference to the DC, to ensure that the DCOverlay is destroyed first. PR#1301

  • Replaced the Vagrant VMs used for building wxPython for various Linux distros with Docker images.

  • Add some missing methods in wx.adv.BitmapComboBox #1307

  • Added the wx.svg package which contains code for parsing SVG (Scalable Vector Graphics) files, and also code for integrating with wxPython. It can rasterize the SVG to a wx.Bitmap of any size with no loss of quality, and it can also render the SVG directly to a wx.GraphicsContext using the GC's drawing primitives. PR#1323

  • Ported the embedding sample from Classic, which shows how to use wxPython from a C++ wxWidgets application that embeds Python. PR#1353

  • Fixed wx.GetApp() to use wxWidgets' global wxApp instance instead of maintaining its own pointer. This way, if the wxApp is created by C++ code wxPython will still be able to get access to it. #1126

  • Added wrappers for the wx.ActivityIndicator class.

  • Added wrappers for the wx.CollapsibleHeaderCtrl class.

  • Fixed issues in PlotCanvas around displaying and using scrollbars. #1428

  • Added wx.msw.CHMHelpController, and also a wx.HelpController factory function that creates an instance of the best Help Controller for the platform. #1536

  • Added wx.adv.GenericAnimationCtrl so the generic version of the animation classes can be used even on the platforms that have a native version. Note that due to internal changes to support both types of animations, some API changes in how the Animation objects are created. See the AnimationCtrl.py sample in the demo for the various usage patterns #1579

  • Added wrappers for the wx.grid.GridBlockCoords, wx.grid.GridBlocks, and wx.grid.GridBlockDiffResult classes, as well as associated new methods in the wx.grid.Grid class. These provide a new way to interact with blocks of selected cells, including an iterator interface in wx.grid.GridBlocks which should be a more efficient (time and memory) way to process large groups of selections.

wxPython 4.0.7.post2 Released

"To QTKit, or not to QTKit..."

wxPython 4.0.7.post2 is now available at PyPI, with some additional files at Extras

This post-release changes a wxWidgets configure option on macOS so the build will be forced to use AVFoundation instead of QTKit. This ensures that wxMediaCtrl will work on macOS 10.15+, where all support for QTKit has been removed.

wxPython 4.0.7 Released

"one more, for the road"

wxPython 4.0.7 is now available at PyPI, with some additional files at Extras

This release is comprised mostly of fixes and minor features which have been back-ported from the master branch. This release is likely the last release of the 4.0.x release series, and is certainly the last 4.0.x release that will support Python 2.7. It may still continue to build for Python 2.7 for some time, but no extra effort will be expended to keep it compatible.

This release provides the following changes:

  • Bug fixes in wx.lib.calendar: key navigation across month boundaries is now possible; key navigation now sets the date and fires the EVT_CALENDAR event; setter APIs now set the date correctly #1230.

  • Switch to using a wx.Overlay in the Widget Inspection Tool to highlight widgets when running on a GTK3 port.

  • Fixed issue in wx.lib.agw.customtreectrl where label editor could remain stuck forever #1235.

  • Fix a sometimes crash when using a wx.Overlay by letting the wx.DCOverlay hold a reference to the DC, to ensure that the DCOverlay is destroyed first. PR#1301

  • Ported the embedding sample from Classic, which shows how to use wxPython from a C++ wxWidgets application that embeds Python. PR#1353

  • Fixed wx.GetApp() to use wxWidgets' global wxApp instance instead of maintaining its own pointer. This way, if the wxApp is created by C++ code wxPython will still be able to get access to it. #1126

  • Several other PRs have been backported from the master branch (which will become wxPython 4.1.0), the full list can be seen on GitHub here.

wxPython 4.0.6 Released

"Applesauce"

wxPython 4.0.6 is now available at PyPI, with some additional files at Extras

This is a quick-fix release to take care of the following issues:

  • Fixed a probably rare, but fatal bug on OSX when calling certain overloaded virtual methods with implementations in Python.

  • Fixed char pointers in generated stub code to have a valid pointer value.

  • Reverted the change that loads up install_requires from the contents of requirements.txt. Split the requirements.txt file into one for install and one for development.