使用 qt.conf
您可以使用 qt.conf 文件来覆盖路径或指定要传递给平台插件的参数。
格式和位置
qt.conf 文件是一个类似于 INI 的文本文件,如 QSettings 文档中所述。
以下位置之一将加载 qt.conf:QLibraryInfo
- 使用资源系统加载
:/qt/etc/qt.conf - 在 macOS 中,在应用程序包内的资源目录中,例如
assistant.app/Contents/Resources/qt.conf - 在包含应用程序可执行文件的目录中,即 QCoreApplication::applicationDirPath() + QDir::separator() + "qt.conf"
覆盖路径
可以使用 qt.conf 文件来覆盖编译到 Qt 库中的硬编码路径。这些路径可通过 QLibraryInfo 类访问。如果没有 qt.conf,则 QLibraryInfo 中的函数返回这些硬编码路径;否则,它们返回 qt.conf 中指定的路径。
如果没有 qt.conf,Qt 库将使用硬编码的路径来查找插件、翻译等。这些路径可能在目标系统上不存在,或者不可访问。因为这个原因,您可能需要一个 qt.conf 来使 Qt 库在其他位置查找。
该文件应包含一个名为 Paths 的组,其中包含与 QLibraryInfo::LibraryLocation 枚举中每个值对应的条目。有关各种位置的详细信息,请参阅 QLibraryInfo 文档。
| 条目 | 默认值 |
|---|---|
| 前缀 | QCoreApplication::applicationDirPath() |
| 文档 | doc |
| 头文件 | include |
| 库文件 | lib |
| 库执行文件 | Unix 上的 libexec,Windows 上的 bin |
| 二进制文件 | bin |
| 插件 | plugins |
| QML 导入 | qml |
| 存档数据 | . |
| 数据文件 | . |
| 翻译 | translations |
| 示例 | examples |
| 测试 | tests |
| 设置 | . |
绝对路径使用方式见 qt.conf 文件中指定。所有路径均相对于 Prefix。在 Windows 和 X11 上,Prefix 是相对于应用程序可执行文件所在的目录(QCoreApplication::applicationDirPath())。在 macOS 上,Prefix 是相对于应用程序包中的 Contents。例如,application.app/Contents/plugins/ 是加载 Qt 插件默认位置。请注意,插件需要放置在 plugins 目录下的特定子目录中(详细信息请参阅 如何创建 Qt 插件)。
注意:为了向后兼容,在 Paths 部分中,Qml2Imports条目是有效的,并被视为 QmlImports 的后备。
例如,一个 qt.conf 文件可能包含以下内容
[Paths] Prefix = /some/path Translations = i18n
注意:反斜杠字符在 INI 文件中被视为特殊字符(请参阅 QSettings)。因此,建议在 Windows 上使用正斜杠作为路径。否则,需要使用转义字符。
Prefix = c:\\SomePath配置平台插件的参数
qt.conf 可能包含一个 Platforms 组,其中的键是被传递给平台插件的参数的逗号分隔列表。键名是平台插件的名称,首字母大写,后跟 Arguments。
例如
[Platforms] WindowsArguments = fontengine=freetype
将导致 Windows 平台插件使用 FreeType 字体引擎。
如何处理较早版本的 Qt 版本的并行安装
对于需要安装较早版本的 Qt 的环境,可以使用特定版本的 qt.conf。在从 Qt 一个版本过渡到下一个版本期间,这通常是必要的,或者为了避免由不带版本号存在的文件引起的冲突。
为此,可以使用名为 qt6.conf 的文件,而不是 qt.conf 文件。如果在上述目录中同时存在这两个文件,则使用 qt6.conf。
© 2024 Qt 公司有限公司。本文件中包含的文档贡献属于其各自所有者的版权。此处提供的文档根据 Free Software Foundation 发布的 GNU Free Documentation License 第 1.3 版 的条款进行许可。Qt 及其相关标志是芬兰的 Qt 公司和/或其他国家的商标。所有其他商标均为其各自所有者的财产。