我目前有一个qml.qrc
文件,如下所示:
<RCC>
<qresource prefix="/qml">
<file>qml/components/Icon.js</file>
<file>qml/components/IconButton.qml</file>
<file>qml/components/IconLabel.qml</file>
<file>qml/main.qml</file>
<file>qml/setup/NewProject.qml</file>
<file>qml/setup/Setup.qml</file>
<file>qml/setup/Startup.qml</file>
<file>qml/workspace/AnimationWindow.qml</file>
<file>qml/workspace/DepthChartControls.qml</file>
<file>qml/workspace/NewAnimationWindow.qml</file>
<file>qml/workspace/TraceWindow.qml</file>
<file>qml/workspace/Workspace.qml</file>
<file>qml/workspace/WorkspaceMenuBar.qml</file>
<file>qml/Empty.qml</file>
<file>qml/qmldir</file>
<file>qml/Style.qml</file>
<file>icons/play.svg</file>
</qresource>
<qresource prefix="/icons">
<file>lib/material-design/icons/svg/play.svg</file>
</qresource>
</RCC>
这样做的原因是,我必须引用qml文件,例如:engine.load(QUrl("qrc:/qml/qml/main.qml"))
,并且当我要访问图标时,必须指定:/icons/lib/material-design/icons/svg/play.svg
。是否可以通过将qresources限制为带前缀的目录路径来简化路径?
答案 0 :(得分:3)
这已经是您想要的方式。您可以通过以下方式访问文件
qrc:/qml/Icon.js
qrc:/icons/play.svg
等
通常它的工作方式如下:给定
<qresource prefix="PREFIX">
<file alias="ALIAS">QRC_RELATIVE_FILEPATH</file>
</qresource>
通过以下方式访问资源
qrc:PREFIX/ALIAS
ALIAS
的默认值是QRC_RELATIVE_FILEPATH
中的文件名(并且只有文件名)-也就是说,示例中使用路径元素是多余的,但受支持。