Qt/C++ 在 Mac OSX 10 上将系统范围 QSettings 存储在哪里?

Posted

技术标签:

【中文标题】Qt/C++ 在 Mac OSX 10 上将系统范围 QSettings 存储在哪里?【英文标题】:Where does Qt/C++ Store System Scope QSettings on Mac OSX 10? 【发布时间】:2015-08-13 17:17:47 【问题描述】:

根据最新 Qt 版本的 Qt 文档,查看QSettings,他们说 Mac 上的系统设置范围存储在目录 /etc/xdg 中。不幸的是,我发现 Mac OSX 10.10 Yosemite 上并非如此。他们将这些设置存储在哪里?我的意思是,我已经让 QSettings 工作 in this example,但即使我这样做 sudo su 并假设我的 Mac 上的 root 以访问该文件夹,也找不到 /etc/xdg 文件夹。

【问题讨论】:

【参考方案1】:

在 MacOS 上,$HOME/Library/Preferences/ 应该是用户设置的位置,而/Library/Preferences/ 是默认设置的路径(用户不能在上面写字)。

如果在较新版本的 MacOS Qt 上使用 Unix 的路径,那么您应该查看 /etc/xdg/$HOME/.config/

在所有四种情况下,这些目录都包含一个 .rc 文件和(可选)一个名为软件的子目录,其中包含所有其他配置文件。

【讨论】:

在我的情况下,/etc/xdg 在装有 Yosemite 的 Mac Air 上不存在。我什至在终端提示中做了sudo su 成为root 并进行检查。但是,我确实看到了 /Library/Preferences$HOME/Library/Preferences。即使我正在做系统范围,它似乎是在$HOME/Library/Preferences 下创建一个文件,即使我使用QSettings::setPath() 语句指定了/etc/xdg。我很担心,因为我需要系统范围,而不是用户范围。 所以,你不能在/etc/xdg中安装文件,因为它不是设置路径;您可以在安装应用程序时将配置文件放在/Library/Preferences 中(普通用户不会修改它)并在$HOME/Library/Preferences 中保留用户版本;如果你想改变这种行为,你必须指示 Qt 使用另一条路径(但我不知道你是否可以做到以及如何做到)

以上是关于Qt/C++ 在 Mac OSX 10 上将系统范围 QSettings 存储在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Mac OSX 上将 Access 数据库与 Netbeans 连接?

如何在 Mac OSX 上将我的 OpenGL 从 2.1 升级到 3.3?

在 Mac OSX 上将 unix 纪元时间转换为人类可读的日期 - BSD

在 OSX 上将卷挂载到 Docker 映像

在 Mac 上将 DbVisualizer 连接到 HSQLDB

如何在 OSX 10.10.2 上将 R 与 PostgreSQL 连接?