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

落爺英雄遲暮 提交于 2020-01-11 05:48:05

问题


There are x number of .png files in a directory.
Instead of adding all these manually I would want to specify the directory path in the .qrc file and let it include all of them on its own.

What is the way to achieve this?


回答1:


No, this is not yet possible, see this bugreport for details.




回答2:


Here is a little bash script that generate a qrc file from the content of a folder

#!/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

You can easily customize it.




回答3:


Just for documentation, I found a workaround to this on this 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)

So, if you use $$file(wildcard) on your .pro file, it would work. I tried and it worked OK.




回答4:


If you’re using qmake you can simply reference the folder containing your assets like this in your project file:

RESOURCES += images/

No need to use scripts or even the $$files() helper, unless you want to glob by file extension.



来源:https://stackoverflow.com/questions/27937654/how-to-specify-wildcards-in-qrc-resource-file-of-qml

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!