Announcing wxPython 4.1.1 =========================
New and improved in this release:
* This should have been mentioned in the notes for the last release, but alas, it wandered away and got lost. wxWidgets is now validating the flags passed when adding items to a sizer, to ensure that they are the correct flags for the type of the sizer. If the given flags do not make sense, for example using horizontal alignment flags in a horizontal box sizer, then a wxAssertionError error is raised.
* Fixed missing binder for wxEVT_STC_AUTOCOMP_SELECTION_CHANGE. (#1613)
* DataViewModel.HasValue can be overridden and will inform the DataViewCtrl whether or not an item and column has data. If HasValue returns False, then GetValue for that item/col will not be called. This allows a distinction between a truly empty cell, and one that has a value even if it is an empty string. (#1600)
* Added flag that allows blocking of item dragging in the UltimateListControl class. (PR#1620)
* Add the column index to notification events in UltimateListControl (PR#1630)
* Added orientation parameter to UltimateListControl.GetScrollPos. (PR#1632)
* wx.lib.agw.aui.AuiNotebook RemovePage() now hides the removed page, so it needs to be shown again if it is reused in another place. (PR#1668)
* Fixed issue that could modify `bytes` objects under Python. (PR#1680)
* Added wx.lib.agw.aui.EVT_AUI_PANE_CLOSE event which is sent when a AUI (the agw version) Pane has been closed (after it has been closed, not when it is about to be closed, which is when EVT_AUI_PANE_CLOSE is sent.) (PR#1628)
* Exposed the wx.DC methods GetGraphicsContext and SetGraphicsContext. Depending on the platform and the type of the DC, there may be a wx.GraphicsContext used for the implementation of the DC. If so, the GetGraphicsContext method enables access to it. Be sure to check that the return value is not None before trying to use it.
* Simplified the implementation of the wx.App.InitLocale method. See the MigrationGuide for more information.
* Added wx.lib.agw.aui.AUI_DOCKART_HINT_WINDOW_BORDER_COLOUR constant so the hint window border color can be themed as well.
* The wx.lib.mixins.listCtrl.CheckListCtrlMixin is now obsolete because wx.ListCtrl has new functionality which does pretty much the same thing. In fact there is some overlap in method names which may trip up some use cases. It is advised to drop the use of CheckListCtrlMixin and just use the wx.ListBox functionality. You will need to call EnableCheckBoxes to turn it on, and you may need to change some event handlers or overloaded methods.
* wx.html2.WebView is now able to use Microsoft's Edge browser component as its backend renderer. This should improve the capabilities of the WebView widget on Windows, and be more consistent with the WebViews on the other platforms, compared to the original IE 11 backend. Using this backed requires that a new-ish version of the Edge browser is installed on the end user's computer.
* Added the wx.Image.ConvertToRegion method. This lets you create a wx.Region from an image and a specified color or the mask if the image has one. This was done to workaround a bug in wxMac, but it seems worthwhile enough to keep it around even after the bug was fixed.
* Added the missing context manager methods for wx.LogNull. (#1842)
* Refactored ScrolledThumbnail out of agw.ThumbnailCtrl so as to be usable outside of ThumbnailCtrl.
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 application.
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 with 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: https://docs.wxpython.org/MigrationGuide.html
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/