qt - 无法访问驻留在同一目录中的 QML 单例

标签 qt qml qtquick2 importerror project-structure

我收到此错误:

qrc:/qml/Accessor.qml:5: ReferenceError: MySingleton is not defined

我的项目结构:

| main.cpp
| main.qml
| qml/
+--- Accessor.qml
+--- MySingleton.qml
+--- qmldir

文件内容:

main.cpp:

#include <QGuiApplication>
#include <QQmlApplicationEngine>

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

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

    return app.exec();
}

main.qml:

import QtQuick 2.6
import QtQuick.Window 2.2
import "qml/"

Accessor {
}

qml/Accessor.qml:

import QtQml 2.2
//import qml 1.0

QtObject {
    property int foo: MySingleton.foo
}

qml/MySingleton.qml:

pragma Singleton
import QtQml 2.2

QtObject {
    property int foo: 0
}

qml/qmldir:

module qml

singleton MySingleton 1.0 MySingleton.qml

qml.qrc:

<RCC>
    <qresource prefix="/">
        <file>main.qml</file>
        <file>qml/Accessor.qml</file>
        <file>qml/MySingleton.qml</file>
        <file>qml/qmldir</file>
    </qresource>
</RCC>

取消注释 Accessor.qml 中的 import qml 1.0 没有帮助。但是当 Accessor.qml 位于项目根目录中时,它可以正常工作。

有什么想法吗?

最佳答案

解决方案:我必须将 import "." 添加到 Accessor.qml 中。

关于qt - 无法访问驻留在同一目录中的 QML 单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44941245/

相关文章:

Qt设计器: Setting fixed size of QLabel

python - 如何使用 PySide2 连接 Python 和 QML?

user-interface - 如何创建 Qt 快速测试

c++ - 如何从 C++ 访问嵌套的 QML 对象?

c++ - 如何在 QML 和 Qt 中访问 QObject* 的 QList?

c - MSVC 2010 中的 Qt5 项目,需要多字节字符集但更改项目的字符集不起作用

c++ - 使用/购买Qt SDK(包括Qt Creator等)

c++ - 将OpenCV链接到Qt Creator

qt-creator - 如何将资源添加到 .qmlproject

qt - AbstractItemModel 到 QML 路由