[PyQt] Serious problem with QVariant v2 API and QSettings

detlev detlev at die-offenbachs.de
Tue Dec 29 13:45:16 GMT 2009


QSettings is not working correctly with the QVariant v2 API. Enter the 
following in a Python console.

>>> import sip
>>> sip.setapi("QString",2)
>>> sip.setapi("QVariant",2)
>>> from PyQt4.QtCore import *
>>> s=QSettings()
>>> s.setValue("k1", 1)
>>> s.value("k1")
>>> s=None
>>> s=QSettings()
>>> s.value("k1")

Setting the variable s to None causes the contents to be written to disk. 
After recreating the QSettings object, which causes the previously saved file 
to be read, the formerly int value has changed to a unicode string. Same 
happens for bool values (and probably other Python types). A list of integers 
is changed to a list of strings.

Detlev Offenbach
detlev at die-offenbachs.de

More information about the PyQt mailing list