在 macOS 上哪里可以找到 QSettings

Where to find QSettings on macOS

所以我正在使用 QSettings 来存储我的偏好,并且根据 https://doc.qt.io/qt-5/qsettings.html#platform-specific-notes 有几个实际存储它的位置。

我在 macOS 10.14 上,但我在 $HOME/Library/Preferences/org.mycomp.myapp.plist 中找到设置(上面 link 说明这应该适用于 macOS 10.2/10.3)。

现在我可以通过打开这个文件看到我最近的设置更改,但是,删除后,我的应用程序仍然加载设置。那么它必须有第二个存储位置吗?但是我好像找不到。

  1. $HOME/Library/Preferences/com.MySoft.Star Runner.plist - 不存在
  2. $HOME/Library/Preferences/com.MySoft.plist - 存在,已删除
  3. /Library/Preferences/com.MySoft.Star Runner.plist - 不存在
  4. /Library/Preferences/com.MySoft.plist - 不存在

对于 unix 变体:

  1. $HOME/.config/MySoft/Star Runner.conf - 不存在
  2. $HOME/.config/MySoft.conf - 不存在
  3. 对于 $XDG_CONFIG_DIRS 中的每个目录:/MySoft/Star Runner.conf - 不存在
  4. 对于 $XDG_CONFIG_DIRS 中的每个目录:/MySoft.conf - 不存在

那么设置还保存在哪里?!

在我的 main.cpp 我有:

    QCoreApplication::setOrganizationName("Firstname Lastname");
    QCoreApplication::setOrganizationDomain("mycomp.org");
    QCoreApplication::setApplicationName("MyApp");

我正在使用 QSettings 和默认构造函数。我正在使用 Qt 5.13.2.

自 macOS Mavericks (10.9) 首选项被缓存以提高性能,他们这么说。当您删除 .plist 文件时,每次执行程序时它们仍然在内存中。您需要使用此命令清除首选项缓存:

killall -u $USER cfprefsd

或者您可以重新启动计算机...

如果您(和您的用户)对此感到厌倦,您可以考虑使用带有 QSettings 的 INI 文件而不是原生 OS 格式:

QSettings("MyApp.ini", QSettings::IniFormat)