使用 qt.conf
您可以使用qt.conf
文件来覆盖路径或指定要传递给平台插件的参数。
格式和位置
qt.conf
文件是一个 INI 文本文件,如QSettings 文档所述。
QLibraryInfo 将从以下位置之一加载 :qt.conf
:/qt/etc/qt.conf
使用资源系统- 在 macOS 上,在应用程序捆绑包内的资源目录中,例如
assistant.app/Contents/Resources/qt.conf
- 包含应用程序可执行文件的目录中,即QCoreApplication::applicationDirPath() +QDir::separator() + "qt.conf"
覆盖路径
qt.conf
文件可用于覆盖编译到 Qt XML 库中的硬编码路径。这些路径可通过QLibraryInfo 类访问。如果没有qt.conf
,QLibraryInfo 中的函数将返回这些硬编码路径;否则,它们将返回qt.conf
中指定的路径。
如果没有qt.conf
,Qt XML 库将使用硬编码路径来查找插件、翻译等。这些路径可能不存在于目标系统中,也可能无法访问。因此,您可能需要qt.conf
来让 Qt XML 库在其他地方查找。
该文件应有一个Paths
组,其中包含与 QLibraryInfo::LibraryLocation 枚举的每个值相对应的条目。有关各种位置含义的详细信息,请参阅QLibraryInfo 文档。
条目 | 默认值 |
---|---|
前缀 | QCoreApplication::applicationDirPath() |
文档 | doc |
页眉 | include |
库 | lib |
库可执行文件 | libexec 在 Unix 上, 在 Windows 上bin |
二进制文件 | bin |
插件 | plugins |
QmlImports | qml |
ArchData | . |
数据 | . |
翻译 | translations |
实例 | examples |
测试 | tests |
设置 | . |
使用qt.conf
文件中指定的绝对路径。所有路径都相对于Prefix
。在 Windows 和 X11 中,Prefix
相对于包含应用程序可执行文件的目录(QCoreApplication::applicationDirPath() )。在 macOS 上,Prefix
与应用程序捆绑包中的Contents
相对。例如,application.app/Contents/plugins/
是加载 Qt 插件的默认位置。请注意,插件需要放在plugins
目录下的特定子目录中(详见如何创建 Qt 插件)。
注意: 为实现向后兼容,条目Qml2Imports
在Paths
部分有效,并被视为QmlImports
的后备条目。
例如,qt.conf
文件可包含以下内容:
[Paths] Prefix = /some/path Translations = i18n
注: 在 INI 文件中,反斜杠字符被视为特殊字符(参见QSettings )。因此,建议在 Windows 上也使用正斜杠作为路径。否则,需要使用转义字符:
Prefix = c:\\SomePath
自 Qt 6.8 起,每个条目可以提供多个路径。它们必须以逗号分隔的列表形式提供。例如
QmlImports = "/path/to/imports1","/path/to/imports2"
可以在逗号前后添加空格。如果路径不包含逗号或空格,也可以省略条目的引号。
配置平台插件的参数
qt.conf
可能包含一个Platforms
组,该组的键是以逗号分隔的要传递给平台插件的参数列表。键名是平台插件的名称,首字母大写,后跟Arguments
。
例如
[Platforms] WindowsArguments = fontengine=freetype
将导致 Windows 平台插件使用 FreeType 字体引擎。
如何处理旧版本 Qt 的并行安装
对于需要同时安装 Qt 早期主要版本的环境,可以使用特定版本的 qt.conf。在从一个 Qt 版本过渡到下一个 Qt 版本的阶段,或为了避免现有文件(不含版本)引起的冲突,这通常是必要的。
为此,可以使用名为qt6.conf
的文件代替qt.conf
文件。如果上述目录中同时存在这两个文件,则使用qt6.conf
。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.