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

How to specify wildcards in .qrc resource file of QML?

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

实现这个的方法是什么?

不,这还不可能,详情请参阅this bugreport

这里有一个 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

您可以轻松自定义它。

仅供参考,我在此 link.

上找到了解决此问题的方法

The following entry in project.pro ensures that the resources are built into the application binary, making them available when needed:

RESOURCES += \
    qml/main.qml \
    images/image1.png \
    images/image2.png

A more convenient approach is to use the wildcard syntax to select several files at once:

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

因此,如果您在 .pro 文件中使用 $$file(wildcard),它就可以工作。我试过了,没问题。

如果您使用的是 qmake,您可以在项目文件中像这样简单地引用包含资产的文件夹:

RESOURCES += images/

无需使用脚本甚至 $$files() 助手,除非您想通过文件扩展名进行 glob。