qt - 在哪里可以找到 macOS 上的 QSettings
问题描述
所以我QSettings
用来存储我的偏好,并且根据https://doc.qt.io/qt-5/qsettings.html#platform-specific-notes有几个实际存储的位置。
我在 macOS 10.14 上,但我找到了设置$HOME/Library/Preferences/org.mycomp.myapp.plist
(上面的链接指出这应该适用于 macOS 10.2/10.3)。
现在我可以通过打开这个文件看到包含我最近的设置更改,但是,删除后,我的应用程序仍然会加载设置。所以必须有第二个存储它的位置?但我似乎找不到它。
- $HOME/Library/Preferences/com.MySoft.Star Runner.plist -不存在
- $HOME/Library/Preferences/com.MySoft.plist -存在,已删除
- /Library/Preferences/com.MySoft.Star Runner.plist -不存在
- /Library/Preferences/com.MySoft.plist -不存在
对于unix变体:
- $HOME/.config/MySoft/Star Runner.conf -不存在
- $HOME/.config/MySoft.conf -不存在
- 对于 $XDG_CONFIG_DIRS 中的每个目录:/MySoft/Star Runner.conf -不存在
- 对于 $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)
推荐阅读
- flutter - Flutter CupertinoPicker UI 中断,子项显示不正确
- javascript - 如何将来自 URL(具有不同来源)的图像加载到 File 对象中?
- .net-core - 如何将 Log4Net 日志发送到 Application Insights for .NET Core 3.1 Web 应用程序?
- python - 当 .loc 到不存在的特定列时,熊猫返回整个数据框
- android - 创建我的应用程序目录并将文件存储在 Android/media/com.mypackage
- .net - .NET 解决错误的影子复制路径
- datatables - 使用带有.net 5的子行的DataTable
- python-3.x - How update a dataframe column value from second dataframe where values on two specific columns that can repeat on first match on both dataframes?
- javascript - Move l l to ts/js angular file?
- python - Shap KernelExplainer doesn't run on GPU