配置Qt 运行的设定:qt.conf 和 qtconfig
Using qt.conf
============================
Using qt.conf
https://doc.qt.io/qt-5/qt-conf.html
https://runebook.dev/zh/docs/qt/qt-conf
格式和位置
qt.conf文件是一个 INI 文本文件,如 qt.conf
文档中所述。
QLibraryInfo 将从以下位置之一加载 qt.conf
:
:/qt/etc/qt.conf
使用资源系统- 在macOS上,位于应用程序捆绑包内的Resource目录中,例如
assistant.app/Contents/Resources/qt.conf
- 在包含应用程序可执行文件的目录中,即QCoreApplication::applicationDirPath () + QDir::separator () + "qt.conf"
注:appimagetool 就是采用了“在包含应用程序可执行文件的目录中。。。。”这种方法的。
Overriding Paths
经常有人写Qt程序里头用到Qt的插件,有时忘记把插件与程序一起发布,有时是不喜欢Qt预设的插件默认路径, 导致程序找不到插件。
遇到这种情况先看看那篇打包发布的文章, 默认情况下Qt运行需要的各种路径都写死在Qt库里,
如果实在不喜欢Qt的插件路径,就要用到qt.conf文件了, 这个文件里的设定能override Qt库的路径。
Qt程序启动时会用QLibraryInfo类载入qt.conf文件, 按下面的路径顺序搜索 :
资源系统, :/qt/etc/qt.conf
Mac系统下会在资源目录, 例如:assistant.app/Contents/Resources/qt.conf
执行档所在目录,如:QCoreApplication::applicationDirPath()+QDir::seperator()+”qt.conf”
Overriding Paths
该 qt.conf
文件可以用于覆盖编译到Qt库的硬编码路径。
使用QLibraryInfo类可以访问这些路径。没有 qt.conf
,QLibraryInfo中的函数将返回这些硬编码的路径;否则,它们返回 qt.conf
中指定的路径。
如果没有 qt.conf
,则Qt库将使用硬编码的路径来查找插件,翻译等。这些路径可能在目标系统上不存在,或者可能不可访问。因此,您可能需要 qt.conf
才能使Qt库在其他地方显示。
该文件应具有一个 Paths
组,其中包含与QLibraryInfo :: LibraryLocation枚举的每个值相对应的条目。有关各个位置的含义的详细信息,请参见QLibraryInfo文档。