[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pykde
Subject:    [PyQt] Re: Serious problem with QVariant v2 API and QSettings
From:       Phil Thompson <phil () riverbankcomputing ! com>
Date:       2009-12-29 14:43:59
Message-ID: 2f478dccd0a6de87653e24a933f3737f () localhost
[Download RAW message or body]

On Tue, 29 Dec 2009 14:45:16 +0100, detlev <detlev@die-offenbachs.de>
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    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic