支持QSettings

  支持QSettings 

Qt将QSettings类作为独立于平台的API提供,用于持久存储和检索应用程序设置。使用该value()方法检索设置 。但是,返回的值的类型可能不是预期的。某些平台只存储字符串值,这意味着原始值的类型将丢失。因此,42可以检索具有整数值的设置(在某些平台上)作为字符串值'42'

作为这个问题的解决方案,PyQt5的实现 value()采用了一个可选的第三个参数调用 type。这可以是Python类型对象,例如int,也可以是C ++类型名称的字符串,例如'QStringList'。返回的值将是所请求类型的对象。

例如:

from PyQt5.QtCore import QSettings, QPoint

settings = QSettings('foo', 'foo')

settings.setValue('int_value', 42)
settings.setValue('point_value', QPoint(10, 12))

# This will write the setting to the platform specific storage.
del settings

settings = QSettings('foo', 'foo')

int_value = settings.value('int_value', type=int)
print("int_value: %s" % repr(int_value))

point_value = settings.value('point_value', type=QPoint)
print("point_value: %s" % repr(point_value))

执行此操作时,将显示所有平台的以下内容:

int_value: 42
point_value: PyQt5.QtCore.QPoint(10, 20)

如果设置的值是容器(对应于或 QVariantListQVariantMapQVariantHash),则类型将应用于容器的内容。

例如:

from PyQt5.QtCore import QSettings

settings = QSettings('foo', 'foo')

settings.setValue('list_value', [1, 2, 3])
settings.setValue('dict_value', {'one': 1, 'two': 2})

# This will write the setting to the platform specific storage.
del settings

settings = QSettings('foo', 'foo')

list_value = settings.value('list_value', type=int)
print("list_value: %s" % repr(list_value))

dict_value = settings.value('dict_value', type=int)
print("dict_value: %s" % repr(dict_value))

执行此操作时,将显示所有平台的以下内容:

list_value: [1, 2, 3]
dict_value: {'one': 1, 'two': 2}

猜你喜欢

转载自blog.csdn.net/Yuyh131/article/details/84648351