我在这里描述了我遇到的Qt资源.rcc文件的问题。
首先,当我在我的项目中创建.qrc文件时,它将适合qrc中添加的所有资源,进入可执行的二进制文件。
第二,Qt中的rcc文件用于良好并优化资源利用率,当我在我的项目中创建它时,它仍然包括所有资源(在.qrc文件中添加)到可执行二进制文件中甚至rcc文件已经包含所有因此,我的问题是为什么即使资源包含在可执行二进制文件中也要使用此rcc。为什么要在项目中包含冗余?
我可能会误解某些内容,或者我不知道某些问题,如果我错了,请纠正我。
答案 0 :(得分:2)
回答太迟了,但可能对任何人有所帮助。
我期待类似的问题,并使用下一个解决方案: 如果你使用QtCreator,只需在.pro文件中包含您的RESOURCES + = xxx with config condition,就像那样:
!realbuild {
RESOURCES += xxx.qrc
}
并将CONFIG + = realbuild设置为qmake params。它给了什么?您可以使用QtCreator的设计器编辑表单,并直接从编辑器使用资源,但不会将其编译到目标文件中,必须使用QResource :: registerResource()在运行时加载资源。使用可以手动构建资源,使用直接调用rcc工具,或编写一个简单的脚本,并使用QMAKE_POST_LINK变量调用它。
现在的问题是 - 如何在运行时重新加载资源?...
答案 1 :(得分:0)
Qt resources有两种选择:
.qrc
文件中添加.pro
RESOURCES = myapp.qrc
rcc
创建外部二进制资源文件,然后在运行时使用QResource::registerResource("/path/to/myresource.rcc");
不要两者都做。即如果您之前已将.qrc
直接包含在.pro
中,并且现在想要动态包含它,请从项目文件中删除RESOURCES
行并执行干净的构建。如果您未在项目的RESOURCES
设置中列出外部二进制资源,则外部二进制资源不会包含在您的可执行文件中。