On Tue, 29 Dec 2009 14:45:16 +0100, detlev <[email protected]>
wrote:
> Hi,
> 
> 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")
> 1
>>>> s=None
>>>> s=QSettings()
>>>> s.value("k1")
> u'1'
>>>>
> 
> 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.

...which is exactly what you would expect if the back-end format being
used doesn't store the types of values.

You have to convert the value to an object of the required type - just
like you do with the v1 API using one of QVariant's methods.

Phil
_______________________________________________
PyQt mailing list    [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to