2
我得到這個錯誤:無法訪問QML單身居住在同一目錄
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在項目根目錄下時,它工作正常。
任何想法?
這是一個長期存在的錯誤。導入點或從C++註冊單例。 – dtech
@dtech我甚至都不知道「import」。「'你可以在不用C++註冊的情況下訪問'pragma Singleton'對象。謝謝! –