gpt4 book ai didi

qt - QML 导入模块

转载 作者:行者123 更新时间:2023-12-04 13:25:09 26 4
gpt4 key购买 nike

我想在我的 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

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

配置.qml
pragma Singleton
import QtQuick 2.0
QtObject {
property int myVariable: 10
}

qmldir
singleton Config 1.0 Config.qml

当我想将我的自定义模块导入为 MyModulemain.qml文件。
import "???" as MyModule

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

编辑:

qrc文件
<RCC>
<qresource prefix="/">
<file>main.qml</file>
</qresource>
<qresource prefix="/myPrefix">
<file>Config/qmldir</file>
<file>Config/Config.qml</file>
</qresource>

最佳答案

** 在 Arpegius 的回答之后问题已经改变,提出另一个问题,我回答这个新问题。 **

这与 qrc-prefix 无关。
我相信您正在混合两种不同的导入方法。

带或不带前缀,要导入模块,您需要相应地设置 QtQuick 引擎的导入路径。

在您的情况下,因为您的模块目录位于项目根目录中:

engine.addImportPath("qrc:/");
// Now engine will look for subfolders which could be modules == with a qmldir

在您的 main.qml 中,您使用前缀路径而不是文件系统路径进行导入:
import myPrefix 1.0 as MyNamespace

您还可以导入简单的 QML 文件,而不是作为模块导入:
// Because the path is relative to main.qml even in a qrc
import "myPrefix" as MyNamespace

那么你根本不需要 qmldir。

关于qt - QML 导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35698711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com