Using qt.conf
你可以使用 qt.conf
文件覆盖路径或指定要传递给平台插件的参数.
Format and Location
qt.conf
是一个 INI 文本文件, 描述参见 QSettings.
QLibraryInfo 从以下路径加载 qt.conf
:
:/qt/etc/qt.conf
使用 Qt 资源系统- 在 macOS 系统上, 文件位于应用程序包内的资源目录中, 例如
assistant.app/Contents/Resources/qt.conf
- 应用程序的可执行文件路径, 即. QCoreApplication::applicationDirPath() + QDir::separator() + "qt.conf"
Overriding Paths
qt.conf
文件会覆盖编译到 Qt 库中的硬编码路径. 你可以使用 QLibraryInfo 访问这些路径. 如果没有 qt.conf
, QLibraryInfo 中的函数返回这些硬编码路径; 否则, 返回 qt.conf
中指定的路径.
如果没有 qt.conf
, Qt 库将使用硬编码路径来查找插件, 翻译等. 这些路径可能在目标系统上不存在, 或者可能无法访问. 因此, 你可能需要 qt.conf
使 Qt 库在其他地方查找.
这个文件应该有一个 Paths
组, 包含与 QLibraryInfo::LibraryLocation 枚举的每个值相对应的条目. 有关每个位置含义, 参见 QLibraryInfo.
Entry | Default Value |
---|---|
Prefix | QCoreApplication::applicationDirPath() |
Documentation | doc |
Headers | include |
Libraries | lib |
LibraryExecutables | libexec |
Binaries | bin |
Plugins | plugins |
Imports | imports |
Qml2Imports | qml |
ArchData | . |
Data | . |
Translations | translations |
Examples | examples |
Tests | tests |
Settings | . |
qt.conf
文件中使用的路径是相对路径. 所有的路径都相对于 Prefix
. 在 Windows 和 X11 上, Prefix
相对于包含可执行文件的目录 (QCoreApplication::applicationDirPath()). 在 macOS 上, Prefix
与应用程序包中的 Contents
相关. 例如, application.app/Contents/plugins/
是加载 Qt 插件的默认位置. 注意: 插件需要放置在 plugins
目录的特定子目录 (详见 How to Create Qt Plugins).
例如, qt.conf
文件可能包含以下内容:
[Paths] Prefix = /some/path Translations = i18n
注意: 在 INI 文件中, 反斜杠被视为特殊字符 (参见 QSettings). 因此, 建议在 Windows 上也对路径使用正斜杠. 否则, 需要转义字符:
Prefix = c:\\SomePath
Configuring Arguments to the Platform Plugins
qt.conf
可能包含一个 Platforms
组, 其键值是以逗号分隔的, 要传递给平台插件的参数列表. 键名称是平台插件的名称, 首字母大写, 后跟参数.
For example:
[Platforms] WindowsArguments = fontengine=freetype
导致 Windows 平台插件使用 FreeType 字体引擎.