QML 导入模块

Onu*_*urA 5 import qt prefix qml qtquick2

我想在我的main.qml文件中导入一个自定义模块。Main.qml位于"/"我的qml.qrc资源的前缀下。

我的自定义模块Config.qml位于Config子目录中。(Config目录是在哪里main.qml,即/path/to/main/Config/Config.qml.

config.qmlqmldir文件存储前缀下myPrefix的在qml.qrc文件中。

Project
|- Config
    |- Config.qml
    |- qmldir
|- main.qml
Run Code Online (Sandbox Code Playgroud)

qmldir还根据文档http://doc.qt.io/qt-5/qtqml-modules-identifiedmodules.html创建了一个文件。这是我的Config.qmlqmldir文件。

配置文件

pragma Singleton
import QtQuick 2.0
QtObject {
    property int myVariable: 10
}
Run Code Online (Sandbox Code Playgroud)

目录

singleton Config 1.0 Config.qml
Run Code Online (Sandbox Code Playgroud)

当我想导入文件MyModule中的自定义模块时main.qml

import "???" as MyModule
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?有人有建议吗?

编辑:

qrc文件

<RCC>
<qresource prefix="/">
    <file>main.qml</file>
</qresource>
<qresource prefix="/myPrefix">
<file>Config/qmldir</file>
<file>Config/Config.qml</file>
</qresource>
Run Code Online (Sandbox Code Playgroud)

Arp*_*ius 2

来自文档

模块的 qmldir 文件必须驻留在导入路径内的目录结构中,该目录结构反映 URI 点式标识符字符串,其中标识符中的每个点(“.”)反映目录树中的一个子级别。例如,模块 com.mycompany.mymodule 的 qmldir 文件必须位于导入路径中某处的子路径 com/mycompany/mymodule/qmldir 中。

因此,您应该更改module MyModulemodule Config或将其导入到特定路径中:

import "./Config" as MyModule
Run Code Online (Sandbox Code Playgroud)