wxPython News

wxPython News

wxPython 4.3.2 Released

wxPython 4.3.2 is now available at PyPI, with some additional files at GitHub Release

New and improved in this release: * Update wxWidgets to v3.3.4 (#2978)

  • Officially support and build wheels for Python 3.15 (#2968)

  • Stop building Windows 32-bit wheels (#2968)

  • Many improvements to the generated type stubs (.pyi files), including checking the handlers given to Bind, enums as classes, char* constants typed as bytes, operator method parameters made positional-only, a type stub for wx.lib.newevent, and adding missing protected virtual methods and SIP-only classes such as wx.Config (#2559, #2733, #2775, #2793, #2801, #2810, #2873, #2932, #2933, #2956, #2957, #2970, #2974, #2975, #2976)

  • Don't make automatic properties from getters that need arguments (e.g. wx.DC.Pixel)

  • Fix EVT_RICHTEXT_PROPERTIES_CHANGED, which was defined as EVT_RICHTEXT_STYLE_CHANGED

  • Restore deprecated wx.propgrid.PG_ACTION constants, which now issue a DeprecationWarning (#2941, #2944)

  • Restore wx.FileTypeInfo constructor to as it was in 4.2.x

  • Enable creating wx.CursorBundle objects from single wx.Cursor's

  • Fix wx.RibbonMSWArtProvider from being abstract

  • Fix wx.aui.AuiDefaultTabArt instantiation and add wx.aui.AuiNativeTabArt (#2918, #2923)

  • Remove custom wx.ColourPickerCtrl implementation on macOS (#2937, #2938)

  • Fix WebView.New(parent) returning a Python-owned window with newer sip versions (#2970)

  • Handle nullptr when creating a Python argstring (#2934, #2935)

  • Ignore new wxRect2DDouble wxRect constructor - fixes GetIM() roundtrip

  • Fix more int/float TypeErrors in wx.lib.agw.ribbon.art_aui (#2924, #2945)

  • Fix stale event object in GridWithLabelRenderersMixin paint handlers (#2929)

  • Sync floating AuiNotebook caption bar when the active tab changes (#2951)

  • Repaint the frame once, not once per pane caption, in AuiManager.RefreshCaptions (#2981)

  • Fix stale wx.MenuItem/wx.Menu references retained by ShortcutEditor's Shortcut class (#2960)

  • Fix wx.lib.inspection dark mode issues (#2917, #2959)

  • Ensure wx.Timer is stopped in wx.lib.ticker when window destroyed

  • Remove numpy Python version restriction

  • Declare the minimum SIP ABI for generated bindings and require SIP 6.10+; loosen the sip build dependency from an exact pin to a range (#2964, #2968)

  • Support building universal2 binaries on newer macOS versions (#2943)

  • Modernize the build: remove distutils usage, drop the bdist_egg, bdist_wininst, bdist_msi and build.py bdist_wheel commands, move static metadata to pyproject.toml, use an SPDX license expression, and implement dependency-groups in pyproject.toml (#2952, #2958, #2961, #2962, #2968)

  • Run cmd_etg and cmd_sip steps in parallel to speed up the sdist build process (#2950, #2954)

  • Download wxdocs/wxdemo archives from GitHub releases (#2971, #2972)

  • Build Windows PDB files during CI runs (#2712, #2797, #2798)

  • Run the unittests in CI, and many fixes to make the unittests reliable (#2681)

wxPython 4.3.1 Released

wxPython 4.3.1 is now available at PyPI, with some additional files at GitHub Release

This is a quick follow-up release to v4.3.0 to fix a couple of significant bugs.

New and improved in this release: * Fix setting RPATH to $ORIGIN when building wxWidgets on Linux (fixes wx.richtext import)

  • Restore removed wx.propgrid defines

wxPython 4.3.0 Released

wxPython 4.3.0 is now available at PyPI, with some additional files at GitHub Release

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

Do note that the wxWidgets 3.3.x releases are API/ABI unstable, so there may be API changes/instability between wxPython 4.3.x releases.

New and improved in this release: * Fix wx.svg to work with cython 3.1 generated code.

  • Populate wx.svg with _nanosvg enum values

  • Bugfix in hypertreelist. Add missing attribute _x_maincol to constructor of TreeListMainWindow.

  • Replace md5 with sha256 when validating downloaded waf and doxygen build tools

  • Migrate to build with wxWidgets 3.3 branch

  • Fix compile warning in ListClass contains methods

  • Fix build with setuptools 81+

  • Modernize/update documentation theme

  • Flatmenu: remove the unnecessary "mcPopupWindow" class used only for MacOS

  • Add several methods to FlatMenu and FlatMenuItem to mimic wx better

  • Make flatmenu's repositioning logic multi-monitor aware

  • Remove no-op code from aui for deleting panes created referring to inexistent windows that were created in the process of loading a perspective. Rationale: All panes that refer to inexistent windows created when loading a perspective that is otherwise valid are already removed during update.

  • Fix SuperToolTip window too small when footerBmp is used

  • Fix incorrect module paths in TipProvider documentation

  • Expose MSWEnableDarkMode/wxDarkModeSettings on all platforms at compile time

  • show CB_READONLY in BitmapComboBox demo

  • Set rpath in link arguments rather than LD_RUN_PATH

  • Use builtin libwebp on macOS wxWidgets builds

  • Lower macOS deployment target to 10.10 on Intel

  • Enable --cairo option when building wheels on Windows

  • Add cairo build for Windows ARM64

  • Fix unbalanced Freeze/Thaw in ButtonPanel

  • Remove support for outdated wxPython version in ButtonPanel

  • Add missing transfer attributes for SetArtProvider

wxPython 4.2.5 Released

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

Changes in this release:

  • This release was built using the wxWidgets' v3.2.9 release tag. The only exception is that libtiff and pcre2 bundled with wxWidgets are updated to the versions from the wxWidgets master branch (libtiff 4.7.0 and pcre2 10.44).

  • Fix build/wheel installation using setuptools 81+

  • Replace md5 with sha256 when validating downloaded waf and doxygen build tools (#2830)

  • Add missing attribute _x_maincol to constructor of TreeListMainWindow (#2828)

  • Fix wx.svg to work with cython 3.1 generated code

wxPython 4.2.4 Released

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

Changes in this release:

  • This release was built using the wxWidgets' v3.2.8.1 release tag. The only exception is that libtiff and pcre2 bundled with wxWidgets are updated to the versions from the wxWidgets master branch (libtiff 4.7.0 and pcre2 10.44).

  • Fix using setuptools.build_meta backend (#2732)

  • Fix EOL style in wx.py.editwindow.py (#2741)

  • Replace imp with types in wx.py.editor.py (#2745)

  • Fix floatcanvas Text.ShiftFunDict: convert float to int (#2749)

  • Fix up/down option not working on the initial search in wx.py.frame (#2747)

  • Fix floatcanvas Arrow, Point, Bitmap drawings (#2750)

  • Officially support and build wheels for Python 3.14 and Windows 11 ARM

  • Fix crash when calling wx.SystemSettings.GetAppearance() without App (#2771)

  • Enable whole word search in wx.py.editwindow (#2769)

  • Add MaxSize limit to ScaledBitmap drawing in FloatCanvas (#2768)

  • Fix more OGL float/int conversion issues (#2739)

  • Major speedups and bug fixes to CustomTreeCtrl and HyperTreeList (#2088)

  • Fix duplicated string constants in wx.propgrid (#2790)

  • Add non-zero width and height to default tab size to avoid wxWidgets warning in wx.lib.agw.aui.auibook (#2788)

  • Fix SetHeaderHeight in UltimateListCtrl (#2239)

  • Add ScrollLeft and ScrollDown to PlotCanvas (#2795)

  • Add sample of PlotCanvas usage (#2794)

  • Fix a linker issue with GCC 16+ and wxHelpControllerBase (#2807)

wxPython 4.2.3 Released

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

Changes in this release:

  • This release was built using the wxWidgets' v3.2.7 release tag. The only exception is that libtiff and pcre2 bundled with wxWidgets are updated to the versions from the wxWidgets master branch (libtiff 4.7.0 and pcre2 10.44).

  • Fix test issues with wx.lib.introspect (#2717)

  • Add support for building on Windows ARM64 (#2521)

  • Incorporate many improvements to type stubs (#2665)

  • Fix building documentation with latest sphinx (#2672)

  • Build smaller architecture-specific wheels on macOS instead of large universal2 wheels

  • Calculate scroll based on child's relative position to scrolledpanel in wx.lib.scrolledpanel

  • Fix float -> int conversion issues in wx.lib.fancytext (#2703)

  • Replace deprecated NumPy type aliases

  • Use wx.StaticText in wx.lib.agw.hyperlink (#2686)

  • Implement partial support for pyproject.toml and other build process improvements

  • Remove use of six and most Python 2 compatibility code

  • Fix wxWidgets build on OpenSUSE (#558, #1067, #2422, #2532)

  • Fix more int conversions in wx.lib.agw.flatnotebook

  • Make build output reproducible

  • Enable overridding wx.Sizer.InformFirstDirection() (#2452)

  • Implement iter for wxList iterator classes (fixes Python 3.13.1 issue)

  • Fix wx.lib.mixins.rubberband not clearing DC on redraw

  • Support implementing CreateBitmapBundle for custom ArtProvider

  • Fix float/int conversion issues in wx.lib.ogl

  • Include usage of wxMemoryFSHandler in webview demo

  • Fix crash when accessing wx.stc.StyledTextCtrl.DropTarget.Data (#2043)

  • Fix AuiManager pane minimizing issue

  • Add range field to wx.lib.agw.pygauge.PyGauge format string (#2583)

  • Fix pickling of wx.RealPoint (#2644)

  • Avoid calling FlatMenu Destroy() in a finally block (#2630)

  • Update wxApp.IsDisplayAvailable to work on Wayland

  • Fix InspectionTool crashes due to bad perspective string errors

  • Drop support for Python 3.8 (EOL)

  • Add CreateAccessible for Windows only

  • Added check condition to AuiManager LoadPerspective()

  • Fix RecursionError in platebtn bitmap getters

  • Add Python implementation of GetPaths (#1944)

  • Support Wayland GTK backend in Window.GetHandle

  • Refactor python only pdfviewer to support displaying pdf files where not all pages have the same size

  • Improve support when specifying a pre-existing toolbar as the target for the restore icon when minimizing a pane in agw.aui

  • Multiple bugfixes in pure python aui

  • pdfviewer: Add support for pymupdf renaming

wxPython 4.2.2 Released

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

Changes in this release:

  • This release was built using the wxWidgets' v3.2.6 release tag. This is the first release built using GitHub infrastructure instead of the buildbots. Please report any problems with the wheels.

  • Fix some Python 3.12 compatibility issues (segfault on exit) by upgrading sip & waf

  • Fix more float/int conversion issues in wx.lib classes (#2415, #2417, #2429, #2470, #2528, #2542)

  • Add initialValue argument to wx.lib.DirBrowseButton (#2430)

  • Fix wxImage.Clear() (#2433)

  • Fix blurry text in AuiNotebook tab (#2360)

  • Add support for frozen rows and columns to GridWithLabelRenderersMixin (#2436)

  • demo: ShortcutEditor: Fix broken call GetMenuBar() (#2412)

  • Add proper support for DataViewCheckIconTextRenderer (#2425)

  • Remove legacy macOS logic, use wx.SystemSettings to select colors (#2018)

  • Build: Use new tarfile.extractall() filter for safer tarfile extraction (#2443)

  • Fix typo in wx.lib.agw.persist_handlers (#2469)

  • Fix 'str' to 'wxString' converstation, when emoji is inside string (#2446)

  • Use unwrap before isbuiltin check (#2487)

  • Preserve pane icons when loading a perspective in agw.aui (#2494)

  • wx.agw.aui: don't uninitialize the AuiManager if the window close event is vetoed (#2460)

  • Pure python AUI: Make behavior in all platforms more equal (#2501)

  • wx.agw.aui. Do layout as the last step after all pane infos have recomputed their best sizes (#2500)

  • Fix additional SyntaxWarnings with Python 3.12 (#2502)

  • Fix wx.lib.agw.ribbon.RibbonButtonBar DeleteButton function (#2511)

  • UltimateListCtrl: Add support for ULC_AUTO_CHECK_PARENT (#2518)

  • Remove dependency on distutils (#2519)

  • Improve wx.lib.agw.FlatMenu memory usage (#2373)

  • Support NumPy 2.0 (#2580, 2591)

  • Fix EditLabel on CustomTreeCtrl doesn't automatically select the entire text (#2549)

  • Fix Widgets placed in the UltimateListControl are drawn in the wrong location (#2410)

  • Fix wx.lib.agw.aui sometimes shows "ghost" docking guide (#2364)

  • Fix Thumbnailctrl SetSelection raises exception if it tries to scroll (#2345)

wxPython 4.2.1 Released

"Size matters not." (Yoda)

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

The biggest change in this release is the addition of Mac and Windows builds for both Python 3.11 and Python 3.12 (beta). In addition there have been some updates in the distro versions used for the Linux wheels available at the extras archive, including some with Python 3.11 builds.