x/COD>是实际C++类的成员,上述代码确实有效。 现在,我有一个C++类的对象,即在相关C++文件中创建的代码> MyCube < /Cuff>。,c++,qt,qml,qtquick2,qobject,C++,Qt,Qml,Qtquick2,Qobject" /> x/COD>是实际C++类的成员,上述代码确实有效。 现在,我有一个C++类的对象,即在相关C++文件中创建的代码> MyCube < /Cuff>。,c++,qt,qml,qtquick2,qobject,C++,Qt,Qml,Qtquick2,Qobject" />

如何访问C++;在QML中初始化对象,而不是在QML中创建单独的对象? 让我们有一个C++类,它包含信号和一些从QML访问的函数。 现在,为了访问QML中该类的成员,我编写了如下内容: myClass { id: abc x: 100 onXChanged: {console.log ("xx");} } 假设代码> x/COD>是实际C++类的成员,上述代码确实有效。 现在,我有一个C++类的对象,即在相关C++文件中创建的代码> MyCube < /Cuff>。

如何访问C++;在QML中初始化对象,而不是在QML中创建单独的对象? 让我们有一个C++类,它包含信号和一些从QML访问的函数。 现在,为了访问QML中该类的成员,我编写了如下内容: myClass { id: abc x: 100 onXChanged: {console.log ("xx");} } 假设代码> x/COD>是实际C++类的成员,上述代码确实有效。 现在,我有一个C++类的对象,即在相关C++文件中创建的代码> MyCube < /Cuff>。,c++,qt,qml,qtquick2,qobject,C++,Qt,Qml,Qtquick2,Qobject,问题: >在QML中,不必创建同一个类的新对象,是否可以并且合理地访问和使用QML中已经创建的C++对象?< /强> < p>,可以使用上下文属性来实现。你可以这样写: ... MyClass myClassObject; QQuickView view; view.rootContext()->setContextProperty("myClassContextProperty", &myClassObject); view->setSource(QUrl::from

问题:

<强> >在QML中,不必创建同一个类的新对象,是否可以并且合理地访问和使用QML中已经创建的C++对象?< /强>

< p>,可以使用上下文属性来实现。你可以这样写:

...

MyClass myClassObject;
QQuickView view;
view.rootContext()->setContextProperty("myClassContextProperty", &myClassObject);
view->setSource(QUrl::fromLocalFile("main.qml"));
view->show();

...
然后您可以在qml中访问它,如下所示:

Button {
    onClicked: myClassContextProperty.x = 100
}