Загрузить qmldir из файла QRC

Я пытаюсь использовать QML-библиотека материалов в приложении Qt Quick.

но когда я пытаюсь использовать код импорта, он говорит

модуль "материал" не установлен'

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 на ?

1 ответов


необходимо добавить в путь импорта папку, в которой находятся модули.

В этом случае qrc:/modules/.

пример:

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

для работы модуля вам необходимо иметь доступ к qmldir файл, но и все файлы, на которые ссылаются в нем. Поэтому вам нужно добавить все файлы библиотеки в qrc.