如何在QML的.qrc资源文件中指定通配符?

时间:2015-01-14 07:19:55

标签: qt qml qtquick2 qresource

目录中有x个.png个文件 我不想手动添加所有这些,而是​​想在.qrc文件中指定目录路径,并让它自己包含所有这些路径。

实现这一目标的方法是什么?

4 个答案:

答案 0 :(得分:4)

不,目前还不行,详见this bugreport

答案 1 :(得分:4)

这是一个小的bash脚本,可以从文件夹的内容生成qrc文件

#!/bin/sh
QRC=./resourcefilename.qrc
echo '<!DOCTYPE RCC>' > $QRC
echo '<RCC version="1.0">' >> $QRC
echo '  <qresource>' >> $QRC

# for each files/folder in the folder "theFokderName"
for a in $(find theFolderName -d)
do
    # if this is not a folder
    if [ ! -d "$a" ]; then
        echo '      <file>'$a'</file>' >> $QRC
    fi
done

echo '  </qresource>' >> $QRC
echo '</RCC>' >> $QRC

您可以轻松自定义它。

答案 2 :(得分:1)

仅出于文档目的,我在此link上找到了解决方法。

  

project.pro中的以下条目确保资源内置于应用程序二进制文件中,并在需要时可用:

     

资源+ = \        qml / main.qml \        images / image1.png \        images / image2.png

     

一种更方便的方法是使用通配符语法一次选择多个文件:

     

资源+ = \         $$ files(qml / * .qml)\         $$ files(images / * .png)

因此,如果您在.pro文件上使用$$ file(通配符),它将起作用。我尝试过,效果很好。

答案 3 :(得分:0)

如果您使用的是qmake,则只需在项目文件中引用包含以下资产的文件夹即可:

RESOURCES += images/

除非您要通过文件扩展名进行遍历,否则无需使用脚本甚至$$files()帮助程序。