如果我执行以下main.cpp
文件
int main(int argc, char **argv)
{
QGuiApplication app(argc, argv);
qmlRegisterType<MyQQuickItem>("MyQQuickItem", 1, 0, "MyQQuickItem");
QQuickView view;
MyObject* obj = new MyObject();
view.setResizeMode(QQuickView::SizeRootObjectToView);
view.rootContext()->setContextProperty("SpecialObject", obj);
view.setSource(QUrl("qrc:/main.qml"));
view.show();
return app.exec();
}
然后我可以在我的SpecialObject
中访问main.qml
的属性:
import QtQuick 2.0
import OpenGlMaterialQQuickItem 1.0
Item {
width: 100
height: 100
MyQQuickItem {
width: 10
height: 10
someProperty: SpecialObject.anotherProperty
}
}
但是如何从SpecialObject
的C ++实现访问MyQQuickItem
?我知道MyQQuickItem
在QQuickView
属性的rootContext()
内部,可以这样命名:contextProperty("SpecialObject")
。但是如何从MyQQuickItem
到其QQuickView
?还是有更好的方法?