wxPython 4.0.4

0 views
Skip to first unread message

Robin Dunn

unread,
Jan 6, 2019, 5:40:53 PM1/6/19
to wxpytho...@googlegroups.com, wxpyth...@googlegroups.com, wx-u...@googlegroups.com, wx-an...@googlegroups.com, Python-Ann...@python.org

Announcing wxPython 4.0.4
=========================

PyPI: https://pypi.org/project/wxPython/4.0.4
Extras: https://extras.wxPython.org/wxPython4/extras/
Pip: ``pip install wxPython==4.0.4``

Changes in this release include the following:

* Fixed an issue where wx.lib.intctrl would erroneously attempt to use
long on Python3. (#898)

* Include the MSVC runtime DLLs for Python 3.7 builds too.

* Clear LIBPATH_PYEXT and LIB_PYEXT for linux builds too. (#904)

* Added a dependency on the Pillow package since it's used in some
wx.lib.agw modules. (PR #908)

* Add flag to hide page in wx.lib.agw.aui.notebook. (#895)

* Switch wx.lib.plot to issue deprecation warnings with
PlotPendingDeprecation so it doesn't have to enable all warnings to
get them to be shown by default. (#902)

* Added a Python 3.7 builder on Fedora 28. (#925)

* Fix the object ownership transfer for wx.Menu.Insert() (#931)

* Added wx.Treebook.GetTreeCtrl, wx.Listbook.GetListView and
wx.Choicebook.GetChoiceCtrl. (#918)

* Removed the wx.BookCtrlBase.RemovePage workaround as it was causing
problems and doesn't seem to be necessary any more. The existing
wxWidgets assertions are catching the out of range error just fine,
however if wxWidgets was built without the debug helpers turned on
then it could still cause a crash. (#888)

* Reverted the changes which removed the content of the wx.lib.pubsub
package and encouraged users to switch to the real PyPubSub package
instead. Removing it caused more issues than were expected so it has
been restored and the code updated to PyPubSub v3.3.0. Version 4.0.0
is available upstream, but it is not compatible with Python
2.7. Now, wx.lib.pubsub is actually deprecated instead of just
trying to pass control over to the upstream PyPubSub library. (#932)

* Improve calltip stability in pyshell. (#941)

* Fix TypeError in wx.lib.throbber. (#924)

* Fix missing parameter tool_id in
wx.lib.agw.ribbon.toolbar.RibbonToolBar.AddToggleTool. (#947)

* Add a step to wx.Config.ReadInt to attempt converting from long to
int under python2. (#384)

* Add virtual behavior for wx.RichTextCtrl and wx.TextCtrl's
Copy/Cut/Paste methods and their Can* counterparts. (#954)

* Fix IO type in wx.lib.agw.thumbnailctrl (#959)

* Fix type error that would occur using pycolourchooser. (#957)

* Optimize line drawing in HyperTreeList. (#973)

* Add wrapper for wx.StaticBox.GetBordersForSizer and use it in the
demo to do platform-specific layout of the items in the
StaticBox. (#974)

* Update wx.Point, wx.RealPoint, and wx.Size to use floating point
arithmetic when conducting scalar multiplication (#971)

* Fix load/save bugs in PySlices (PR#978)

* Replace deprecated PIL.Image.tostring (PR#1005)

* Fix rendering and mouse sensitivity in UltimateListCtrl when adding
HyperText items. (#1010)

* Added a parameter to lib.agw.CustomTreeCtrl.SetItemWindow(), to
allow positioning the Window (a small image) on the left of text in
a CustomTreeItem. (#PR886).

* Declared DeleteAllPages in the notebook subclasses, so the proper
C++ implementation will be called. (#972)

* Removed wx.lib.floatbar, which has been deprecated forever and
probably hasn't been working in nearly as long. (#976)

* Updated SIP to version 4.19.13.

* Fix an issue in wx.lib.agw.aui.AuiManager where the orientation of
an AuiToolBar would not be updated when calling
LoadPerspective. (#917)

* Fixed a bug in wx.FileSystemHandler.OpenFile where the object
ownership was not being transferred correctly, causing a crash after
a premature object deletion. (#926)

* Fixed wx.ListCtrl.Append when wx.LC_SORT style is used, so appending
items out of order does not lose the data for the remaining
columns. (#906)

* Add wx.Accessible, it's Windows-only, will raise a
NotImplementedError exception on the other platforms. (#958)

* Added the ability to generate stub classes for use when optional
wxWidgets features are not part of the build. So far, stubs are
available for wx.Accessible, wx.FileSystemWatcher, wx.glcanvas,
wx.media and wx.html2.

* Moved the wxpy_api.h file into the wx package at wx/include/wxPython
so it will be included in the wheel file. (#961)

* Fixed how string data is added to a virtual file-like object in
wx.MemoryFSHandler. All strings are now added to the file as utf-8
encoded data, in both Python2 and Python3, and will be read from the
virtual file the same way. If you need to use some other encoding
for some reason you can first convert the text to a bytesarray or
other buffer protocol compatible object and then create the virtual
file from that data. (#969)

* Performance update for wx.lib.agw.customtreectrl (#1049)

* Ensure that colours set in wx.lib.agw.customtreectrl.TreeItemAttr
are instances of wx.Colour. (#1032)

* Fix drawing of ticks in wx.lib.agw.speedmeter when there are
negative bounds values. (#1013)

* wxWidgets for Mac includes the wxJoystick class now, also update the
demo. (#997)

* Fix wx.html.HtmlPrintout to not be seen as an abstract class, so it
can be instantiated. (#1060)

* Fix wx.aui.AuiNotbook.SetArtProvider to properly transfer ownership
of the art object from Python to C++. This possible double-deletion
and related crashing problems. (#1061)

* Fixed the wrappers for wx.html.HtmlWindow.OnOpeningURL to properly
handle the redirect output parameter. (#1068) This is a
backwards-incompatible change, please see the Migration Guide for
details.

* TabNavigatorWindow works similarly to other programs now. It's
resizable and draggable so if user has tons of files with long names,
it isn't an irritation anymore plastered right in the middle of the
screen and can't be worked with easily and ESC now cancels the popup
with a proper returnId. (#1096)

* Added missing methods in wx.ListBox, SetItemForegroundColour,
SetItemBackgroundColour and SetItemFont. (#1095)

* Backported a fix in wxWidgets that avoids crashing in hhctrl.ocx
when using context sensitive help in 64-bit builds on
Windows. (#1104)






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/



--
Robin Dunn
Software Craftsman
http://wxPython.org
Reply all
Reply to author
Forward
0 new messages