QSettings-用户删除文件时如何兑现?

时间:2018-08-03 02:25:12

标签: qt pyside pyside2

我正在尝试使用此代码段最简单地使用QSettings

from PySide2 import QtCore
settings = QtCore.QSettings("TestCompany", "TestApp")
settings.setValue('testValue', 100)

在OSX上,这最终将一个plist写入:

/Users/frank/Library/Preferences/com.testcompany.TestApp.plist

根据docs,出于效率原因,更改可能不会立即写入。

不过,一旦我看到plist文件,我就假定可以删除它,以便下次启动应用程序时,尝试从新的设置实例返回值的尝试将返回None。

但是,即使我删除了plist文件并关闭了python解释器,然后重新打开它并构造了一个新的QSettings实例,它仍然设法以某种方式检索了先前为“ testValue”设置的值。 / p>

我该如何管理它,以便当用户删除设置文件并重新启动QT应用程序时,他们得到的是整洁的而不是旧值?

我是否必须手动检查plist文件是否存在,并使用clear()清除内存中的所有现有值,还是有更好的方法来保证删除文件和应用程序后的状态良好重新启动?

谢谢, 坦白

1 个答案:

答案 0 :(得分:1)

我知道帖子有点老,但是我遇到了同样的问题,发现OSX最终会将您的设置记录到:

/Users/frank/Library/Preferences/com.testcompany.TestApp.plist

但是,当您保存设置时,这似乎不会立即发生。

它会缓存您的设置-为了重置您必须在MAC OSX终端中发出以下命令:

$ defaults delete com.testcompany.TestApp

希望这对以后到这里来的人有帮助。