从QRC文件加载qmldir

时间:2015-07-30 14:20:04

标签: qt qml qtquick2

我正在尝试在Qt快速应用程序中使用QML-material library

但是当我尝试使用导入代码时,它说

  

模块“材料”未安装`

import Material 0.1

我也试过这个,但这似乎不起作用:

import "modules/Material" as Material

qml.qrc如下所示,列出了所有qmldir个文件:

<RCC>
    <qresource prefix="/">
        <file>main.qml</file>
        <file>modules/Material/qmldir</file>
        <file>modules/Material/Extras/qmldir</file>
        <file>modules/Material/ListItems/qmldir</file>
        <file>modules/QtQuick/Controls/Styles/Material/qmldir</file>
    </qresource>
</RCC>

的main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    engine.addImportPath("qrc:/");
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

    return app.exec();
}

我是否遗漏了某些内容或是否无法在qmldir文件中使用qrc

1 个答案:

答案 0 :(得分:11)

您需要在导入路径中添加模块所在的文件夹。

在这种情况下,它是qrc:/modules/

示例:

engine.addImportPath( "qrc:///modules" );

要使模块正常工作,您需要访问qmldir文件,以及其中引用的所有文件。因此,您需要将库的所有文件添加到qrc。