Qt5 将 qrc 移至 DLL

Posted

技术标签:

【中文标题】Qt5 将 qrc 移至 DLL【英文标题】:Qt5 move qrc to DLL 【发布时间】:2016-12-23 18:58:55 【问题描述】:

在我的解决方案中,我想创建第二个辅助应用程序,它将使用与我的主应用程序相同的资源。所以我想将我所有的 .qrc 文件移动到 DLL 并同时在两个应用程序中使用它。 我选择了 dll 格式,因为将来我的解决方案将包含我将放入该 dll 中的共享函数。

我应该如何编译和附加 DLL 以使用标准 .qrc 文件等两个应用程序中的资源?

【问题讨论】:

我不太明白你在问什么。您需要进一步了解流程的哪一部分?我相信您知道如何使用一些资源构建库:它与构建应用程序没有什么不同,只是您使用TEMPLATE = lib 而不是TEMPLATE = app。我还确定您知道如何使用 LIBS += ... 条目使您的项目与 DLL 链接。请准确说明你不知道什么,以及你已经做过什么。另请注意,您可能希望通过选择变体作为命令行参数,让一个应用程序像两者一样运行。 好的,我大概可以正确制作一个DLL,但是我不知道如何使用该库中的资源,以及如何从设计器表单中使用它 @km2442 我认为您将无法在设计器中使用来自 dll 的资源。但是您将能够使用 QFile 等打开这些文件 【参考方案1】:

从资源或构建的角度来看,没有区别。

DLL 的.pro 文件引用其资源文件的方式与应用程序的.pro 文件完全相同。

然后可以使用QT_INIT_RESOURCE 宏将库资源“树”“导入”到应用程序中,请参阅http://doc.qt.io/qt-5/resources.html#using-resources-in-a-library

【讨论】:

您能否提供一个仅包含 .qrc 的 DLL 示例以及使用 DLL 资源的应用程序?我无法在应用资源树中显示资源:(

以上是关于Qt5 将 qrc 移至 DLL的主要内容,如果未能解决你的问题,请参考以下文章

如何将文件从 Qrc 保存到应用程序目录

Qt qrc 资源文件 - 无法加载图标

升级到qt5.12.0碰到资源文件编译的错误

在 translations.qrc 文件中读取翻译器文件 .ts/.qm

更改后,QT QML资源文件不会重新编译

无法在 Qt5/cmake 项目中加载 Qt 资源文件中指定的图像