wxPython 4.0.0a2

129 views
Skip to first unread message

Robin Dunn

unread,
May 9, 2017, 12:28:42 AM5/9/17
to wxpytho...@googlegroups.com, wxpyth...@googlegroups.com, wx-u...@googlegroups.com, wx-an...@googlegroups.com, Python-Ann...@python.org

Announcing wxPython 4.0.0a2
---------------------------

https://pypi.python.org/pypi/wxPython/4.0.0a2

This build of wxPython is based on the official wxWidgets 3.0.3
release.

This release is mostly various bug fixes and other tweaks, such as:

* Allow numpy arrays to be auto-converted to simple sequence value
types like wx.Size, wx.Colour, etc.

* A couple of fixes to lib/agw/aui to prevent segfaults under OSX
when AuiNotebook tabs are closed

* Fix wx._core.wxAssertionError in wx.lib.agw.aui when dragging a
notebook tab

* Fix the [G|S]etClientData methods in wx.CommandEvent to behave the
same way they are in wx.ClientDataContainer.

* Fix the SetFonts methods in wx.html classes

* Several fixes in wx.dataview related to overriding methods

* Fixed some flickering in wx.lib.agw.aui.framemanager

* Fixed problem with wrong implementation of
wxNotebook::DeleteAllPages being called on Windows

* Added the missing wx.grid.GRID_AUTOSIZE flag

* Fixed crash due to the object created in an XmlSubclassFactory
being destroyed too soon

* Fixed crash in wx.lib.agw.toasterbox

* Fixed crash when using wx.xrc.XmlSubclassFactory

* Fixed wx.grid.GridTableBase.GetValue and related methods to work
more like they did in Classic, so non-string values can be used a
little more easily.

Added building and bundling of the PDB files for wxWidgets and the
wxPython extensions on Windows. Until a better place is found they
will be downloadable from https://wxPython.org/Phoenix/release-extras,
along with archives for the documentation as well as the demo and
samples.



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 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://wxpython.org/Phoenix/docs/html/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://wxpython.org/Phoenix/docs/html/main.html

--
Robin Dunn
Software Craftsman
http://wxPython.org

sebastian lópez

unread,
May 9, 2017, 4:14:27 PM5/9/17
to wxPython-users, wxpyth...@googlegroups.com, wx-u...@googlegroups.com, wx-an...@googlegroups.com, Python-Ann...@python.org
Downloading and testing the aui.Notebook !

niki

unread,
May 11, 2017, 6:21:30 AM5/11/17
to wxpytho...@googlegroups.com
wx.Choice should be subclass of wx.ControlWithItems as in classic.

Python 2.7.13 (default, Jan 19 2017, 14:48:08)
[GCC 6.3.0 20170118] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
>>> wx.VERSION
(4, 0, 0, 'a2')
>>> issubclass(wx.Choice, wx.ControlWithItems)
False

Niki

Robin Dunn

unread,
May 12, 2017, 8:15:39 PM5/12/17
to wxpytho...@googlegroups.com
With the new tools we follow the details of the wxWidgets API more
closely than before, which is a good thing, (less hackiness is possible,
so less bugs due to square pegs in round holes,) and the wxPython API is
derived almost completely from the documented API of wxWIdgets. There
the wxChoice class multiply inherits from wxControl and
wxItemContainer. See the class diagram at
http://docs.wxwidgets.org/3.0/classwx_choice.html

The C++ wxControlWithItems is really just an empty class that does
nothing but inherit from wxControl and wxItemContainer, so it is
basically the same thing. If you need to test if something is in this
part of the class hierarchy then you can test for wx.ItemContainer
instead of wx.ControlWithItems.

niki

unread,
May 15, 2017, 3:41:13 AM5/15/17
to wxpytho...@googlegroups.com
On 13.05.2017 03:15, Robin Dunn wrote:
...
> The C++ wxControlWithItems is really just an empty class that does
> nothing but inherit from wxControl and wxItemContainer, so it is
> basically the same thing. If you need to test if something is in this
> part of the class hierarchy then you can test for wx.ItemContainer
> instead of wx.ControlWithItems.
>

Thanks for the detailed explanation.

Niki
Reply all
Reply to author
Forward
0 new messages