Python PyQt5-静态QSettings变量丢失它';首次使用后的s值,并变为无

Python PyQt5-静态QSettings变量丢失它';首次使用后的s值,并变为无,python,pyqt5,python-3.6,qsettings,Python,Pyqt5,Python 3.6,Qsettings,我在PyQt5中的Python3.6/7项目中遇到了一个问题。在我的主文件中,我有如下内容: if __name__ == '__main__': ... app = QApplication(sys.argv) app.setOrganizationName("ORGANIZATION_NAME") app.setOrganizationDomain("ORGANIZATION_DOMAIN") app.setApplicationName("APPL

我在PyQt5中的Python3.6/7项目中遇到了一个问题。在我的主文件中,我有如下内容:

if __name__ == '__main__':
    ...

    app = QApplication(sys.argv)
    app.setOrganizationName("ORGANIZATION_NAME")
    app.setOrganizationDomain("ORGANIZATION_DOMAIN")
    app.setApplicationName("APPLICATION_NAME")
    app.setApplicationVersion("APPLICATION_VERSION_CODE")

    SettingsUtils.initializeSettings()

    # Install translators
    ...

    value: list = SettingsUtils.getSettingValue("key")

    if len(value) == 0:
        window: Window = Window()
        window.show()

    ...

    # Run application until it terminates
    sys.exit(app.exec_())
然后在SettingsUtils类中:

class SettingsUtils:
    __SETTINGS: QSettings = None
    __SETTINGS_FILE_NAME: str = "./mySettings.ini"

    @classmethod
    def initializeSettings(cls) -> None:
        cls.__SETTINGS = QSettings(
            QSettings.IniFormat,
            QSettings.UserScope,
            "ORGANIZATION_NAME",
            "APPLICATION_NAME"
        )
        cls.__SETTINGS.setPath(QSettings.IniFormat, QSettings.UserScope, cls.__SETTINGS_FILE_NAME)
        cls.__SETTINGS.setFallbacksEnabled(False)

    @classmethod
    def getSettingValue(cls, key: str, valueType: type) -> Any:
        if cls.__SETTINGS is None:
            raise Exception("Settings not instantiated")

        ...

        return cls.__SETTINGS.value(key, defaultValue, type=valueType)

    @classmethod
    def setSettingValue(cls, key: str, value: Any) -> None:
        if cls.__SETTINGS is None:
            raise Exception("Settings not instantiated")

        ...

        cls.__SETTINGS.setValue(key, value)
        cls.__SETTINGS.sync()
总之,在类窗口的构造函数中,这是一个QWidget,我使用了另外几次行
SettingsUtils.getSettingValue(“key”)


因此,如您所见,我从主脚本中初始化
设置sutils
类的
\u SETTINGS
静态成员,然后使用它从主脚本中再次读取设置中的值,然后在
窗口的构造函数中再次使用它几次。问题在于,当我第一次使用
\u SETTINGS
变量时,它被正确实例化,但当我从
窗口
构造函数再次读取它时,该变量被重置为无。我想我错过了一些非常愚蠢的东西,但我无法得到它是什么。提前感谢大家。

提供一个我不重复您的问题,因此您有必要提供一个MREHi@eyllanesc,我已经设法解决了问题:按照您的建议构建一个可复制的示例,我意识到我不能。我的代码在迷你示例中工作,所以我意识到错误在我的代码中。具体地说,这是我导入
设置sutils
类的方式:我将行
从SettingsUtils import setingsutils
更改为
从utils.SettingsUtils import setingsutils
,所有操作都正常。就像他试图加载另一个未初始化的设置utils类,对吗?顺便说一句,谢谢你的帮助。