2011-06-11 66 views
1

这里我描述了我面临Qt资源.rcc文件的问题。Qt资源文件利用率

首先,当我在我的项目中创建.qrc文件时,它将适合qrc中添加到可执行二进制文件中的所有资源。

第二,在Qt中使用rcc文件以及优化资源利用率,当我在我的项目中创建它时,它仍然包含所有资源(添加到.qrc文件中)到可执行二进制文件中,甚至rcc文件已经包含所有这样的资源,我的问题是为什么即使资源被包含在可执行的二进制文件中也使用这个rcc。为什么在项目中包含冗余?

它可能我误解了某些东西,或者我没有意识到某些问题,请纠正我,如果我错了。

回答

0

有两个选项为Qt resources

  • 包括在.pro文件.qrc
RESOURCES = myapp.qrc 
  • 创建rcc外部二进制资源文件,然后将其注册在运行时与
QResource::registerResource("/path/to/myresource.rcc"); 

不要两者都做。即如果您之前将.qrc直接包含在您的.pro中,并且现在想要动态地包含它,请从项目文件中删除RESOURCES行并进行干净构建。如果您未在项目的RESOURCES设置中列出外部二进制资源,则不包含在您的可执行文件中。

2

答案为时已晚,但可能对任何人都有帮助。

我希望类似的问题,并用于未来的解决方案: 如果使用QtCreator,只是包装你的资源+ = XXX在.pro文件中的配置条件,这样的:

!realbuild { 
    RESOURCES += xxx.qrc 
} 

,并设置CONFIG + = realbuild到qmake params。它给了什么?您可以使用QtCreator的设计器编辑您的表单,并直接从编辑器使用资源,但不会将其编译到您的目标文件中,必须使用QResource :: registerResource()在运行时加载资源。使用可以手动构建资源,使用直接调用rcc工具,或者编写一个简单的脚本,并使用QMAKE_POST_LINK变量调用它。

现在的问题是 - 如何在运行时重新加载资源?...