[PySide] Ann: porting PySide to Qt5
Christian Tismer
tismer at stackless.com
Wed Sep 23 18:09:36 CEST 2015
Hi Jumaroch,
this is interesting, maybe you have solved things that I have not yet.
PySide2 builds completely, and a few things work on Qt5.4.
Qt5.5 right now has a problem with QSysInfo.
I am interested in your support for signals, because I did not do
that, yet. But before, there is the bigger problem of
the implementation of dynamicmetaobject.
That needs a re-write, and I did not understand exactly how.
The revision that PySide uses is still #3, which is no longer supported
by Qt5, they now require #7.
Was that the case when you worked on QtCore?
I would be very much interested in your patches, if it solves more than
in your list below, which I all have already.
Here is my status log of the project.
> Status:
>
> + Full build of PySide 2.0 for Qt5.4
> + Migration to Qt5.5 done
> + Windows 7/10 support is done
> +- regression tests 50 % working
> - rewrite libpyside.dynamicmetaobject.cpp for revision 7 (current is 3)
> - signal support is missing
> - plugin support is missing
>
> This primitive example crashes, because of the above libpyside flaw.:
> from PySide import QtWidgets
> app = QtWidgets.QApplication(())
> w = QtWidgets.QLabel('hello')
> w.show() # crashes because of too old metaobject revision
>
>
> The 50% regression does not say much, because most errors depend on the missing features or old revisions. Once there things are resolved, we really can look into the remaining errors.
Thanks very much -- Chris
On 23/09/15 17:36, Jumaroch Belpecajo wrote:
> Hi Christian,
>
>
>
> Last year, I started a porting of PySide to Qt5.
>
> I only worked on the QtCore module, but I succedded in having 99% of all
> classes and methods sucessfully wrapped.
>
> I made a quick python test with a custom class derived from QObject with
> signal/slot connections, and everything was working well.
>
> I didn't have time to continue with the QtGui porting since it's a huge
> task due the QtWidgets modules split.
>
>
>
> If you are interested, I can generate the patches and send them to you,
> especially the ones related to "tricky" qt metaobject stuff :)
>
> FYI, I used an old version of PySide (1.0.9), but hopefully there is not
> much difference with the current version (even if in this version,
> api-extractor was not yet merged with the shiboken module).
>
>
>
> IIRC, the main difficulties were:
>
> - replace Zc:wchar_t- with Zc:wchar_t to use the native type instead of
> ushort typedef (Qt5 is now compiled with wchar_t by default)
>
> - need explicit cast in qstring_convertsions:
> QString::fromUtf16(reinterpret_cast<const ushort*>(unicode)
>
> - headergenerator: need to order customized converter, due to
> dependencies: QString before QVariant before QStringRef, ...
>
> - replace deprecated macro qdoc with Q_QDOC (otherwise, the metaObject
> method is not seen)
>
>
>
> Cheers,
>
> Romain
>
>
> 2015-07-12 12:15 GMT+02:00 Christian Tismer <tismer at stackless.com
> <mailto:tismer at stackless.com>>:
>
> Thank you for the hint!
>
> Exactly this is what I saved for later, because I needed to gain more
> experience by the porting, before going into this.
>
> cheers - Chris
>
>
> On 12.07.15 09:50, redstone-cold wrote:
>> I hope you guys be careful about the signal - slot mechanism in Qt5
>>
>> http://www.riverbankcomputing.com/pipermail/pyqt/2014-January/033575.html
>>
>>
>>
>> 在2015年07月10 04时45分, "Christian Tismer"<tismer at stackless.com>
>> <mailto:tismer at stackless.com>写道:
>>
>>
>> Hi all,
>>
>> to let you be informed:
>>
>> PySide will live on.
>> --------------------
>>
>> There is someone intensively working on porting PySide to Qt5,
>> with some help from Autodesk.
>>
>> I started end of May and am still very busy to get the most
>> important modules to compile. Now I think it is time to open
>> things up to the community and discuss some things, do reviews,
>> and most importantly: stop working alone for too long.
>>
>> This stuff is still under heavy development, and I'm inviting
>> experienced PySide developers to join me on the pyside-dev
>> list. I will post more details there.
>>
>> All the best - Chris
>>
>> --
>> Christian Tismer :^) tismer at stackless.com
>> <mailto:tismer at stackless.com>
>> Software Consulting : http://www.stackless.com/
>> Karl-Liebknecht-Str. 121 : http://www.pydica.net/
>> 14482 Potsdam : GPG key -> 0xFB7BEE0E
>> phone +49 173 24 18 776 <tel:%2B49%20173%2024%2018%20776> fax
>> +49 (30) 700143-0023 <tel:%2B49%20%2830%29%20700143-0023>
>>
>>
>>
>
>
> --
> Christian Tismer :^) tismer at stackless.com <mailto:tismer at stackless.com>
> Software Consulting : http://www.stackless.com/
> Karl-Liebknecht-Str. 121 : http://www.pydica.net/
> 14482 Potsdam : GPG key -> 0xFB7BEE0E
> phone +49 173 24 18 776 <tel:%2B49%20173%2024%2018%20776> fax +49 (30) 700143-0023 <tel:%2B49%20%2830%29%20700143-0023>
>
>
> _______________________________________________
> PySide mailing list
> PySide at qt-project.org <mailto:PySide at qt-project.org>
> http://lists.qt-project.org/mailman/listinfo/pyside
>
>
--
Christian Tismer :^) tismer at stackless.com
Software Consulting : http://www.stackless.com/
Karl-Liebknecht-Str. 121 : https://github.com/PySide
14482 Potsdam : GPG key -> 0xFB7BEE0E
phone +49 173 24 18 776 fax +49 (30) 700143-0023
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 522 bytes
Desc: OpenPGP digital signature
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20150923/9e5079f7/attachment.sig>
More information about the PySide
mailing list