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

Qt 如何在QML的.qrc资源文件中指定通配符?,qt,qml,qtquick2,qresource,Qt,Qml,Qtquick2,Qresource,目录中有x个.png文件。 我希望在.qrc文件中指定目录路径,并让它自己包含所有这些路径,而不是手动添加这些路径 实现这一点的方法是什么?不,这还不可能,有关详细信息,请参阅。下面是一个小bash脚本,它可以从文件夹的内容生成qrc文件 #!/bin/sh QRC=./resourcefilename.qrc echo '<!DOCTYPE RCC>' > $QRC echo '<RCC version="1.0">' >> $QRC echo '

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


实现这一点的方法是什么?

不,这还不可能,有关详细信息,请参阅。

下面是一个小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
#/垃圾箱/垃圾箱
QRC=。/resourcefilename.QRC
回声'>$QRC
回声'>>$QRC
回声'>>$QRC
#对于文件夹“theFokderName”中的每个文件/文件夹
对于美元中的a(查找文件夹名称-d)
做
#如果这不是一个文件夹
如果[!-d“$a”];然后
回显“$a”>>$QRC
fi
完成
回声'>>$QRC
回声'>>$QRC

您可以轻松地自定义它

就为了文档,我找到了一个解决方法

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

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


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

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

RESOURCES += images/

无需使用脚本或甚至
$$files()
帮助程序,除非您希望按文件扩展名进行全局搜索。

资源文件在运行时未填充,这意味着您不能仅添加代码行来自动添加文件。但实际上,只需选择文件,就可以一次添加多个文件。但是,如果要在选定路径之后添加文件,则需要手动添加资源文件中的文件。
RESOURCES += \ 
    $$files(qml/ *.qml) \
    $$files(images/ *.png)
RESOURCES += images/