使用 qt.conf

您可以使用 qt.conf 文件来覆盖路径或指定要传递给平台插件的参数。

格式和位置

qt.conf 文件是一个类似于 INI 的文本文件,如 QSettings 文档中所述。

以下位置之一将加载 qt.confQLibraryInfo

  1. 使用资源系统加载 :/qt/etc/qt.conf
  2. 在 macOS 中,在应用程序包内的资源目录中,例如 assistant.app/Contents/Resources/qt.conf
  3. 在包含应用程序可执行文件的目录中,即 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 公司和/或其他国家的商标。所有其他商标均为其各自所有者的财产。