我收到了这个错误:
qrc:/qml/Accessor.qml:5:ReferenceError:未定义MySingleton
我的项目结构:
| 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在项目根目录中时,它可以正常工作。
有什么想法吗?
答案 0 :(得分:1)
解决方案:我必须将import "."
添加到Accessor.qml
。