Welcome to wxPython!

This website is all about wxPython, the cross-platform GUI toolkit for the Python language. With wxPython software developers can create truly native user interfaces for their Python applications, that run with little or no modifications on Windows, Macs and Linux or other unix-like systems.

Learn more

Latest News

wxPython 4.0.0b2 Released

wxPython 4.0.0b2 is now available at PyPI, with some additional files at the Extras archive.

Note

Due to file size limits at PyPI the Sphinx source for the wxPython API documentation was removed from the wxPython source tarball so the file could be uploaded. The standalone documentation tarball at the extras archive was unaffected.

Changes in this release include the following:

  • Added a deprecated compatibility helper for wx.CustomDataFormat.

  • Transfer ownership of the wx.EvtHandler object when pushing/popping them, and also for Set/RemoveEventHandler. (#443)

  • Add missing wx.VScrolledWindow methods listed in the docs as deprecated but still present. (#441)

  • Fixed copy/paste error in wx.BusyInfo.exit (#449)

  • Added new tool wxget, (a minimal wx implementation of wget)

  • Added new tools wxdocs and wxdemos to launch the respective items, fetching and unpacking as required. (#437)

  • Fixes to ensure that the locale message catalogs are included in the release files. (#464)

  • Fix wx.ListCtrl.SetItemData to check that the data value is not out of the range of a C long. (#467)

  • Changed the default port on *nix builds to be GTK3. The new --gtk2 flag for build.py can be used to force a build for GTK2 instead, and the --gtk3 flag still exists, but defaults to True unless --gtk2 is specified. Please note that there is currently no auto-detection of whether GTK3 is available or not, so if you know you need to build for GTK2 then you need to use the build flag, and there is currently no way to specify that flag for builds performed by pip. (#431)

  • Fix parameter names in Toolbar.AddTool methods to be consistent. (#475)

  • Remove inconsistent GetVirtualSize method in ScrolledWindow and let it be inherited from wx.Window instead. (#474)

  • Fix crashing bug caused by importing a module that reinitializes the wxModule system after having imported wxpyTag. (#468)

  • Fix missing methods in various DataObject classes. (They were actually accidentally marked "private" when they should have been public.) (#480)

  • Add missing ListCtrl.DeleteAllColumns. (#486)

  • Various fixes in the demo.

  • Fixed improper initial scale factor in wx.lib.agw.speedmeter

  • Fix for calls to wx.Notebook.HitTest calling the wrong instance (base class version) of the method. (#499)

  • Add wx.Simplebook class.

  • Fix exception in wx.lib.agw.customtreectrl when calling SortChildren. (#463, #500)

  • Fix missing imports needed for drawing the legend in wx.lib.plot. (#503)

  • Fix other instances of list.sort using old cmp-style ordering functions. (#508)

  • Update SizedControls to do a sanity check on the parent's sizer, as GetSizer can return None for SizedParent under certain circumstances, such as when AUI reparents the control during pane movement. (#523, #537)

  • Added Vagrant configs for Fedora 23 and Fedora 26, and dropped Fedora 24. Wheels built on F23 can also be used on F24 and F25, and F26 adds Python 3.6 support.

  • Fix bitwise OR bug in wx.lib.agw.aui.framemanager. (#493)

  • Fix bugs in wx.lib.plot when saving file. (#526)

  • Fix integer division bug in ultimatelistctrl. (#528)

  • Fix bug in wx.SearchCtrl.SetCancelBitmap (#532)

  • Fixed property grid SetPropertyValue method to not truncate floating point values to integers, and a couple other possible incorrect conversions. (#536)

New wxPython Website

"The 2000s called, they want their website back..."

Not any more! I finally gave the old clunky site back to the dinosaurs and have implemented a brand new site (using the awesome static site generator Nikola) which you are gazing at with much adoration now. The new site combines most of what was on the old site, plus a news feed (you're reading a news post right now) and I also resurrected my old wxForty-Two blog from the wordpress graveyard and added it here too. Being a static site I no longer have to worry about the perpetual stream of wordpress security issues.

Read more…

More news