[PyQt] PyQt5 NULL QVariant

Matthias Kuhn matthias at opengis.ch
Thu Apr 21 15:46:08 BST 2016


Hi Phil,

On 04/21/2016 04:22 PM, Phil Thompson wrote:
> On 18 Apr 2016, at 1:27 pm, Matthias Kuhn <matthias at opengis.ch> wrote:
>> Hi,
>>
>> I am currently updating QGIS to PyQt5 (and Qt5 and Python3). Since this update, NULL QVariant strings are converted to empty strings '' and all numbers to 0 when converted from C++ to python objects.
>>
>> The documentation is not very verbose on this topic:
>>
>> PyQt5 does not support the QPyNullVariant class as it is no longer needed.
>> http://pyqt.sourceforge.net/Docs/PyQt5/pyqt_qvariant.html
>>
>> sip.enableautoconversion() which is mentioned on the same doc page probably does the job of preserving the semantics but at the same time sacrifices all the advantages of PyQt4's v2 API.
> The only disadvantage is having to explicitly call the value() method.

For newly written code that shouldn't matter.
The problem is, we have a huge ecosystem of plugins for which I prefer
to make the migration path as easy as possible.
Big parts of the API can be converted from PyQt4 (with SIP API v2) to
PyQt5 automatically. I fear that this will not be possible for this
change because the migration tool lacks the required data type information.

I think the SIP API v2 of PyQt4 had a pretty good handling of python
representation for QVariants. Is there a big disatvantage that I don't see?

Matthias

-- 
Matthias Kuhn
OPENGIS.ch - https://www.opengis.ch
Spatial • (Q)GIS • PostGIS • Open Source



More information about the PyQt mailing list