gpt4 book ai didi

python - QSettings setpath ini 格式仍在 Windows 上使用注册表

转载 作者:行者123 更新时间:2023-11-28 20:26:49 33 4
gpt4 key购买 nike

我正在尝试使用 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,因为它是一个跨平台应用程序,应该如果未设置自定义路径,则使用 native 格式。

最佳答案

QSettings 文档误导性地建议代码

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

相当于

QCoreApplication::setOrganizationName("Moose Soft");
QCoreApplication::setApplicationName("Facturo-Pro");
QSettings settings;

但这不是真的。试试这个

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 构造函数支持默认格式,而您选择了一个不支持的格式。

关于python - QSettings setpath ini 格式仍在 Windows 上使用注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10678651/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com