使用 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 公司和/或其他国家的商标。所有其他商标均为其各自所有者的财产。