GSoC 2014 wxQT + wxPython (Phoenix) wxWidgets 3.2

2 views
Skip to first unread message

Mariano Reingart

unread,
Aug 12, 2014, 4:37:43 PM8/12/14
to wx-dev, wxpyth...@googlegroups.com
FYI

I've finished the patches to build wxPython (Phoenix) with the latest wxWidgets master trunk (3.1.0) under the wxQT port (Qt 5.2.1), as part of my last milestone for my the Google Summer of Code 2014 project.

Build instructions (Python 3.4 under Ubuntu) and screenshots:


Many samples works, and even the demo runs partially (not all controls, some with drawing glitches)
It is not complete (some support and fixes are still needed), but it could be used to experiment and test the latest features of wxWidgets and wxQT.
Note that wxQT is more stable than Phoenix (many wxWidgets demos works ok but there are assertions that affect wxPython).
It complies with the overall interface (701 files are compiled ok out of 711, the difference is webview_webkit that isn't currently implemented for wxQT and is excluded from the build, but that would be relatively easy to complete).

Most changes to Phoenix were minor issues related to update it for wxWidgets 3.1:

 * wxSVGBitmapHandler new class
 * data view methods issues (GetSortingColumns, IsMultiColumnSortAllowed) 
 * missing enum HTMLCursor in html window
 * wxQT version and some conditional guards in listctrl, html2 (not currently implemented) and wxPyApp::IsDisplayAvailable()
 
Changes needed in wxWidgets trunk due interface problems:

 * fix grid renderer best height/width methods (invalid wxSize return value)
 * fix duplicate methods in rich text control interface

For more info see the tentative pull request for Phoenix


and related commits in wxWidgets SOC2014_QT branch:


Sadly I have no more time to complete the last ticket (wxPython for Android) in the short term as the Google Summer of Code 2014 is coming to an end, but if anyone is interested I'll be glad to advice / help / colaborate, please see the wxQT for Android post as a starting point:


Best regards
wxQT_wxPython_Phoenix_demo_about.png

Werner

unread,
Aug 13, 2014, 1:52:52 AM8/13/14
to wxPyth...@googlegroups.com
Hi Mariano,

On 8/12/2014 22:37, Mariano Reingart wrote:
> FYI
>
> I've finished the patches to build wxPython (Phoenix) with the latest
> wxWidgets master trunk (3.1.0) under the wxQT port (Qt 5.2.1), as part
> of my last milestone for my the Google Summer of Code 2014 project.
>
It looks like you made huge progress with the wxQT port.

Will this make it possible to deploy a wxPython application to QT
supported platforms - e.g. smartphones? Or are there other hurdles to
overcome?

Werner

Mariano Reingart

unread,
Aug 14, 2014, 3:15:35 AM8/14/14
to wxPyth...@googlegroups.com
On Wed, Aug 13, 2014 at 2:52 AM, Werner <wern...@gmx.ch> wrote:
Hi Mariano,


On 8/12/2014 22:37, Mariano Reingart wrote:
FYI

I've finished the patches to build wxPython (Phoenix) with the latest wxWidgets master trunk (3.1.0) under the wxQT port (Qt 5.2.1), as part of my last milestone for my the Google Summer of Code 2014 project.

It looks like you made huge progress with the wxQT port.


Yes, 68% of unit tests are passing for wxQT now ;-)
Most core controls are working, and also some advanced ones like the listctrl, treectrl and grid. 
TLW, dialogs and MDI too.
Even cairo and opengl are working up to a certain extent.
There are still some issues in the wxPython side (and some refactory for wxWidgets is needed in specific areas), but nothing serious as far I could experiment with it.
 
Will this make it possible to deploy a wxPython application to QT supported platforms - e.g. smartphones?  Or are there other hurdles to overcome?


I didn't cross-compiled wxPython (yet), but wxQT is working for Android:


Compiling Phoenix should be easy, at least for Android, but packaging Python itself could be more complex.
You can see Python for Android (kivy approach), it uses 2.7.2 but seems easy to add more external libraries to the build:

https://github.com/kivy/python-for-android

Other option should be pyqtdeploy, but it seems more complex and I don't know much about it, beside that it uses a similar method than wxQT (embeeding python in a C++ Qt app).

As I said in the previous mail, I run out of time to do this now (I planned it, but my GSOC mentor, VZ, preferred to prioritize bug-fixing on wxQT).
I'll be glad to help anyone interested to make this happen, fell free to contact me 

Best regards,
Reply all
Reply to author
Forward
0 new messages