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.qml
和qmldir
文件存储前缀下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.qml
和qmldir
文件。
配置文件
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)
来自文档:
模块的 qmldir 文件必须驻留在导入路径内的目录结构中,该目录结构反映 URI 点式标识符字符串,其中标识符中的每个点(“.”)反映目录树中的一个子级别。例如,模块 com.mycompany.mymodule 的 qmldir 文件必须位于导入路径中某处的子路径 com/mycompany/mymodule/qmldir 中。
因此,您应该更改module MyModule
为module Config
或将其导入到特定路径中:
import "./Config" as MyModule
Run Code Online (Sandbox Code Playgroud)