如何在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。
目录中有 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。