QSettings setpath ini格式仍在windows上使用注册表

2024-05-08 15:05:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用QSettings::setPath和defaulFormat设置路径以存储应用程序的某些自定义设置,但当我尝试使用设置文件时,这两种设置似乎都被忽略了。在

>>> QSettings.setDefaultFormat(QSettings.IniFormat)
>>> QSettings.setPath(QSettings.IniFormat, QSettings.UserScope, "C:\\")
>>> settings3 = QSettings("Balh", "MyApp")
>>> settings3.fileName()
PyQt4.QtCore.QString(u'\\HKEY_CURRENT_USER\\Software\\Balh\\MyApp')

我想继续使用settings = QSettings(),如果可以的话,我不需要向它提供QSettings::IniFormat,因为它是一个跨平台的应用程序,如果没有设置自定义路径,应该使用本机格式。在


Tags: 文件路径应用程序filenamemyapppyqt4qsettingsqtcore
1条回答
网友
1楼 · 发布于 2024-05-08 15:05:49

QSettings文档误导性地建议

QSettings settings("Moose Soft", "Facturo-Pro");

相当于

^{pr2}$

但事实并非如此。试试这个

from PySide import QtCore
QtCore.QSettings.setDefaultFormat(QtCore.QSettings.IniFormat)

settings = QtCore.QSettings("Moose Soft", "Facturo-Pro")
print settings.format()

QtCore.QCoreApplication.setOrganizationName("MooseSoft")
QtCore.QCoreApplication.setApplicationName("Facturo-Pro")
settings = QtCore.QSettings()
print settings.format()

您将看到只有第二个构造函数使用默认格式。如果您查看QSettings构造函数文档,您将看到这一点得到确认:

Example:

QSettings settings("Moose Tech", "Facturo-Pro");

The scope is set to QSettings::UserScope, and the format is set to QSettings.NativeFormat (i.e. calling setDefaultFormat() before calling this constructor has no effect).

只有一些QSettings构造函数支持默认格式,而您选择了一个不支持的格式

相关问题 更多 >